原始链接:https://stackoverflow.com/questions/1373164/how-do-i-create-variable-variables
问题描述
其他一些语言(例如 PHP)支持“可变变量名”的概念 – 即字符串的内容可以用作变量名的一部分。例如,在php中,可以使用变量做变量名
$name = "张三"
$var_name = "name"
echo $$var_name # = $name
那么在 Python 中可以做这样的事情吗?
问题解答
使用字典
可以使用字典来实现这一点。字典是键和值的存储。
>>> dct = {'x': 1, 'y': 2, 'z': 3}
>>> dct
{'x': 1, 'y': 2, 'z': 3}
>>> dct["y"]
2
您可以使用变量键名来实现可变变量的效果,而没有安全风险。
>>> x = "spam"
>>> z = {x: "eggs"}
>>> z["spam"]
'eggs'
使用函数getattr
使用python内置的getattr
函数
obj.spam = 'eggs'
name = 'spam'
getattr(obj, name) # returns 'eggs'
使用globals()
>>> a = 10
>>> globals()['a']
10