如何在Python中完成变量变量?
例如,这是详尽的手动输入:变量变量
我听说这通常是个坏主意,这是Python中的一个安全漏洞。真的吗?
每当您想使用变量变量时,最好使用字典。所以不要写
$foo = "bar"
$$foo = "baz"
你写
mydict = {}
foo = "bar"
mydict[foo] = "baz"
这样,您就不会意外覆盖先前存在的变量(这是安全方面),并且您可以拥有不同的“命名空间”。
本SimpleNamespace
类可用于创建新的属性setattr
,或继承SimpleNamespace
并创建自己的功能,增加新的属性名称(变量)。
from types import SimpleNamespace
variables = {"b":"B","c":"C"}
a = SimpleNamespace(**variables)
setattr(a,"g","G")
a.g = "G+"
something = a.a
我正在回答这个问题:如何在字符串中给定变量名的情况下获取变量的值? 将其作为重复项关闭并带有此问题的链接。
如果所讨论的变量是一个对象(例如一个类的一部分)的一部分,那么一些有用的功能,以实现准确是
hasattr
,getattr
,和setattr
。因此,例如,您可以拥有:
然后,您可以执行以下操作: