繁体   English   中英

如何从该模块中动态向模块添加属性?

[英]How do I dynamically add an attribute to a module from within that module?

在我想要定义的模块中说:

a = 'a'
b = 'b'
...
z = 'z'

对于某些集合(在这种情况下,我选择了字母)。 如何在当前模块上动态设置属性? 就像是:

for letter in ['a', ..., 'z']:
    setattr(globals(), letter, letter)

这不起作用,但会怎么样? (另外我的理解是模块中的globals()指向该模块属性的字典,但如果这是错误的话,请随时纠正我)。

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'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM