ホームページ >バックエンド開発 >Python チュートリアル >Python でローカル変数を動的に割り当てるにはどうすればよいですか?

Python でローカル変数を動的に割り当てるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 03:11:13613ブラウズ

How Can I Dynamically Assign Local Variables in Python?

Python での動的変数の割り当て

Python では、locals() ディクショナリを直接変更してローカル変数を動的に設定することは実行可能な解決策ではありません。一般的な考えに反して、そのような変更は関数のスコープ内では保持されません。

代替アプローチ

ローカル変数を動的に設定するには、次のいずれかの使用を検討してください。メソッド:

Dictionary

辞書を作成し、キーと値のペアを動的に割り当てます:

d = {}
d['xyz'] = 42

オブジェクト属性

オブジェクトを使用して属性を設定する動的:

class C: pass

obj = C()
setattr(obj, 'xyz', 42)

編集

関数以外の名前空間 (モジュール、クラス定義、インスタンス) の変数にアクセスするには、通常、辞書検索が必要です。ただし、関数ローカルは、コンパイラに認識されている変数名をプリコンパイルすることによって速度が最適化されます。

Python の C 実装では、関数内で locals() を呼び出すと、現在のローカル変数値で初期化された辞書が作成されます。このディクショナリはローカル変数への変更によって更新され、後続の locals() 呼び出し時に返されます。

IronPython では、locals() を呼び出す関数はローカル変数ストアとしてディクショナリを使用します。ローカル変数への代入によりディクショナリが変更され、その逆も同様です。ただし、別の名前を IronPython 内のローカル関数にバインドすると、関数ではなくバインディング スコープのローカル変数にアクセスできるようになります。

注意

注意が重要です。 locals() によって返された辞書に代入すると、予測できない結果が生じる可能性があります。これらの割り当てに依存することは強くお勧めしません。

以上がPython でローカル変数を動的に割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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