globals()仅适用于当前模块

时间:2016-02-09 14:15:19

标签: python python-3.x module global-variables

globals()我可以在当前模块中看到符号。当我导入另一个模块时,我看不到它们。那么如何通过globals()的名称访问另一个模块中的全局类,或者它是否可能?

1 个答案:

答案 0 :(得分:1)

是的,globals()只显示当前的模块命名空间。

模块是objects with attributes;您可以访问他们的__dict__ attribute,或者更好的是,使用vars() function将他们的名称空间视为字典:

>>> import string
>>> list(vars(string))
['whitespace', '_string', 'ChainMap', 'ascii_uppercase', 'digits', '__name__', 'punctuation', 'Formatter', 'Template', '__doc__', '__spec__', '_re', 'hexdigits', '__package__', 'ascii_lowercase', '__cached__', 'octdigits', 'ascii_letters', '__builtins__', '_TemplateMetaclass', '__file__', 'capwords', '__loader__', 'printable']