строка Python для символьного имени

#python

#python

Вопрос:

Я хочу проверить импортированные имена.
Код:

 import fst # empty file fst.py
for s in dir(fst):
    print(s) # got string with symbolic names
  

Выходной сигнал:

 __builtins__
__cached__
__doc__
__file__
__name__
__package__
  

Теперь я хочу проверить значения каждого определенного имени:
Код:

 print(__builtins__)
print(__cached__)
print(__doc__)
print(__file__)
print(__name__)
print(__package__)
  

Вопрос: Как я могу «извлечь» символьное имя из строки?
предполагаемый код:

 import fst #empty file fst.py
for s in dir(fst):
    print(s, StrToSym(s)) # this call should be equal to str("__name__", __name__)
  

Ответ №1:

Использовать getattr :

 for s in dir(fst):
  print (getattr(fst, s))
  

Ответ №2:

Используйте getattr функцию:

 print(s, getattr(fst, s))
  

Ответ №3:

Нет такого понятия, как «символическое имя». То, что содержит модуль, доступно в качестве его атрибутов, так что getattr(module, name) это то, что вы ищете.