在我想要定义的模块中说:
a = 'a'
b = 'b'
...
z = 'z'
对于某些集合(在这种情况下,我选择了字母)。如何在当前模块上动态设置属性?类似的东西:
for letter in ['a', ..., 'z']:
setattr(globals(), letter, letter)
这不起作用,但会怎样? (另外我的理解是模块中的globals()指向该模块属性的字典,但如果这是错误的话,请随时纠正我。)
答案 0 :(得分:10)
globals()返回当前模块的字典,因此您可以像添加任何其他字典一样向其添加项目。尝试:
for letter in ['a', ..., 'z']:
globals()[letter] = letter
或消除对globals()的重复调用:
global_dict = globals()
for letter in ['a', ..., 'z']:
global_dict[letter] = letter
甚至:
globals().update((l,l) for l in ['a', ...,'z'])