import sys
def attrs_and_types(mod_name):
print('Attributes and their types for module {}:'.format(mod_name))
print()
for num , attr in enumerate(dir(eval(mod_name))):
print("{idx}: {nam:30} {typ}".format(
idx=str(num + 1).rjust(4),
nam=(mod_name + '.' + attr).ljust(30),
typ=type(eval(mod_name + '.' + attr))))
attrs_and_types(sys.__name__)
Может ли кто-нибудь помочь мне с этими двумя строками?Получить имена и типы атрибутов модуля Python
for num, attr in enumerate(dir(eval(mod_name))):
attrs_and_types(sys.__name__)
Я не понимаю, почему sys.__name__
передается в качестве аргумента функции. Предполагается, что это имя модуля. Почему .__name__
добавлен в sys
?
И в цикле for
num, attr
проверяет в этом:
enumerate(dir(eval(mod_name)))
Что это? Это место памяти?
Как вы говорите, это должно быть имя модуля. 'module .__ name__' ** является ** именем' module'; 'sys .__ name__ == 'sys''. И нет, это не «место памяти». * - Я предлагаю вам перейти к документам Python и посмотреть, какие 'eval',' dir' и 'enumerate' делать, или просто добавить некоторые вызовы функции' print', чтобы найти что делает каждый шаг. – jonrsharpe