2016-02-09 2 views
0

К globals() Я могу видеть символы в текущем модуле. Когда я импортирую другой модуль, я не вижу их. Итак, как я могу получить доступ к глобальному классу в другом модуле по его имени через globals() или, если это возможно?globals() работает только для текущего модуля

+0

из любопытства, почему вы хотите это сделать? Возможно, будет лучший способ добиться того, что вы пытаетесь сделать. –

ответ

2

Да, 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'] 
Смежные вопросы