#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)
это то, что вы ищете.