重複の可能性:
Python で可変変数を実行するにはどうすればよいですか?
文字列が割り当てられた変数があり、その文字列に基づいて新しい変数を定義したいと考えています。
foo = "bar"
foo = "something else"
# What I actually want is:
bar = "something else"
重複の可能性:
Python で可変変数を実行するにはどうすればよいですか?
文字列が割り当てられた変数があり、その文字列に基づいて新しい変数を定義したいと考えています。
foo = "bar"
foo = "something else"
# What I actually want is:
bar = "something else"
そのために使用できますexec
:
>>> foo = "bar"
>>> exec(foo + " = 'something else'")
>>> print bar
something else
>>>
代わりに辞書を使用すると、より幸せになります。
my_data = {}
foo = "hello"
my_data[foo] = "goodbye"
assert my_data["hello"] == "goodbye"
使用できますsetattr
name = 'varname'
value = 'something'
setattr(self, name, value) #equivalent to: self.varname= 'something'
print (self.varname)
#will print 'something'
ただし、新しい変数を受け取るようにオブジェクトに通知する必要があるため、これはクラスまたはモジュール内でのみ機能します。