ホームページ >バックエンド開発 >Python チュートリアル >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 サイトの他の関連記事を参照してください。