文字列名による変数値へのアクセス
多くのシナリオでは、文字列ベースの変数検索は辞書を使用して実現できます。方法は次のとおりです:
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 サイトの他の関連記事を参照してください。