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

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

Patricia Arquette
リリース: 2024-12-11 11:54:11
オリジナル
770 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート