ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列名を使用して変数値にアクセスするにはどうすればよいですか?

Python で文字列名を使用して変数値にアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 11:54:11751ブラウズ

How Can I Access Variable Values Using Their String Names in Python?

文字列名による変数値へのアクセス

多くのシナリオでは、文字列ベースの変数検索は辞書を使用して実現できます。方法は次のとおりです:

get_ext = {'text': ['txt', 'doc'],
           'audio': ['mp3', 'wav'],
           'video': ['mp4', 'mkv']}

これで、文字列入力によって目的のリストを取得できます:

get_ext['audio']  # ['mp3', 'wav']

関数を使用したい場合は、辞書の get メソッドを割り当てることができます。またはその項目フェッチ メソッド (__getitem__) をそれに割り当てます:

get_ext = get_ext.get
get_ext('video')  # ['mp4', 'mkv']

get_ext.get に代入すると、デフォルトが提供されます。不明なキーに対して None を返す動作。 KeyError の場合は、代わりに get_ext.__getitem__ に割り当てます。

または、辞書を関数内にラップしてカスタムのデフォルト値を提供することもできます。

def get_ext(file_type):
    types = {'text': ['txt', 'doc'],
             'audio': ['mp3', 'wav'],
             'video': ['mp4', 'mkv']}
    return types.get(file_type, [])

セットアップを最適化するには、次のようにします。 call メソッドを使用してクラスを定義して、 lookup:

class get_ext(object):
    def __init__(self):
        self.types = {'text': ['txt', 'doc'],
                      'audio': ['mp3', 'wav'],
                      'video': ['mp4', 'mkv']}
    def __call__(self, file_type):
        return self.types.get(file_type, [])

このアプローチでは、型ディクショナリを 1 回だけ作成することで効率が向上し、動的な更新が可能になります:

get_ext = get_ext()
get_ext.types['binary'] = ['bin', 'exe']
get_ext('binary')  # ['bin', 'exe']

以上がPython で文字列名を使用して変数値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。