Python – 如何创建可变数量的变量?

如何在Python中完成变量变量?

这是一个精心设计的手动条目,例如:变量变量

我听说这是一个坏主意,但它是Python中的一个安全漏洞。真的吗?


您可以使用词典来完成此任务。字典是键和值的存储。

>>> dct = {'x': 1, 'y': 2, 'z': 3}
>>> dct
{'y': 2, 'x': 1, 'z': 3}
>>> dct["y"]
2

您可以使用变量键名来实现变量的影响,而不会产生安全风险。

>>> x = "spam"
>>> z = {x: "eggs"}
>>> z["spam"]
'eggs'

对于你想要做类似事情的情况

var1 = 'foo'
var2 = 'bar'
var3 = 'baz'
...

列表可能比dict更合适。列表表示有序的对象序列,带有整数索引:

l = ['foo', 'bar', 'baz']
print(l[1])           # prints bar, because indices start at 0
l.append('potatoes')  # l is now ['foo', 'bar', 'baz', 'potatoes']

对于有序序列,列表比整数键类型的字典更方便,因为列表支持迭代的索引顺序,切片append和其他操作,将需要尴尬密钥管理与字典。


使用内置getattr函数按名称获取对象的属性。根据需要修改名称。

obj.spam = 'eggs'
name = 'spam'
getattr(obj, name)  # returns 'eggs'

这不是一个好主意。如果要访问全局变量,可以使用globals()

>>> a = 10
>>> globals()['a']
10

如果要访问本地范围中的变量,可以使用locals(),但不能为返回的dict赋值。

更好的解决方案getattr在字典中使用或存储变量,然后按名称访问它们。

添加评论

友情链接:蝴蝶教程