Python での動的変数の割り当て
Python では、ローカル変数を直接動的に設定することはできません。他の回答では locals() 関数の変更を提案していますが、このアプローチは信頼性が低く、特に関数内で常に機能するとは限りません。
動的変数割り当ての代替手段
代わりに、動的に割り当てる別の方法もあります変数:
d = {} d['xyz'] = 42 print(d['xyz']) # Output: 42
class C: pass obj = C() setattr(obj, 'xyz', 42) print(obj.xyz) # Output: 42
def outer_function(x): def inner_function(y): return x + y return inner_function # Returns a closure add_foo = outer_function(10) print(add_foo(5)) # Output: 15
locals() 関数
locals() 関数は、関数内のローカル変数の辞書を返します。ただし、このディクショナリを直接変更しても、実際の変数値には影響しません。例:
def foo(): lcl = locals() lcl['xyz'] = 42 print(xyz) # Error: NameError: name 'xyz' is not defined
これは、locals() を変更すると、実際の変数自体ではなく、ローカル変数辞書のコピーが変更されるためです。
結論
動的ローカル変数の割り当ては Python では直接可能ではありませんが、ディクショナリ、オブジェクト属性、またはクロージャを使用することで、同様の機能を実現するための代替ソリューションが提供されます。 Python でローカル変数を扱う際の混乱を避けるために、locals() 関数の微妙な違いに注意することが重要です。
以上がPython で動的な変数の割り当てを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。