按globals()
我可以在当前模块中看到符号。当我导入另一个模块时,我看不到它们。那么如何通过globals()
的名称访问另一个模块中的全局类,或者它是否可能?
答案 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']