可能的重复:
如何以编程方式设置全局(模块)变量? https://stackoverflow.com/questions/1429814/how-to-programmatically-set-a-global-module-variable
我有一个名为 Variable 的类,定义如下:
class Variable():
def __init__(self, name):
self.name = name
self._value = None
def value(self):
return self._value
def __repr__(self):
return self.name
我想创建 26 个大写单字母变量实例,如下所示:
A = Variable('A')
B = Variable('B')
...
Z = Variable('Z')
到目前为止,我已经尝试了各种解决方案,我想出的最好的解决方案是:
from string import uppercase
for char in uppercase:
exec "%s = %s" % (char, Variable(str(char))) in None
但是,这不会运行并给出以下错误:
Traceback (most recent call last):
File "C:\Users\Administrator\Dev\python\truthtable\truthtable.py", line 7, in <module>
exec "%s = %s" % (char, Variable(str(char))) in None
File "<string>", line 1, in <module>
NameError: name 'A' is not defined
我究竟做错了什么?
from string import uppercase
_g = globals()
for char in uppercase:
_g[char] = Variable(char)
这是否是一个good这个想法仍然值得怀疑:)
这仅适用于globals()
(即模块级分配),因为语言定义明确指出修改由locals()
实际上可能不会改变任何局部变量的值。
你也可以做类似的事情__dict__
一个类或实例的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)