Python で動的に設定されたローカル変数にアクセスする
これまでの提案にもかかわらず、locals() によるローカル変数の直接変更は信頼性が低く、未定義です。代わりに、動的ローカル変数操作を実現するために、いくつかの実用的なアプローチを採用できます。
辞書操作
辞書を利用して動的ローカル変数を割り当て、アクセスします。
d = {} d['xyz'] = 42 print(d['xyz'])
オブジェクト属性
オブジェクトに属性を設定して動的ローカル変数を作成します:
class C: pass obj = C() setattr(obj, 'xyz', 42) print(obj.xyz)
注:
関数以外での変数へのアクセス名前空間 (モジュール、クラス定義、インスタンス) には通常、辞書検索が含まれます。関数ローカルは速度を最適化することができ、関数内で locals() を直接変更することは通常不可能です。
IronPython 例外
IronPython では、明示的に locals() を呼び出します。 ) ローカル変数を辞書として返します。関数内で別の名前をローカルにバインドすると、バインディング スコープのローカル変数へのアクセスが許可されます。
結論
辞書またはオブジェクト属性を使用すると、動的に設定するための信頼できる方法が提供されます。 Pythonのローカル変数。予期しない動作を防ぐために、locals() の直接変更に依存することは避けてください。
以上がPython でローカル変数を動的に設定してアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。