У меня есть файл Python 2.x module.py
, который выглядит следующим образом:
class A(object):
KEYWORD = 'Class A'
class B(A):
KEYWORD = 'Class B'
class C(object):
pass
def list_class_keywords():
for name in globals():
print name, hasattr(name, 'KEYWORD')
if __name__ == '__main__':
list_class_keywords()
В list_class_keywords()
я перебираю все объекты этого файлового модуля и проверяю,Объект имеет атрибут KEYWORD
.Очевидно, что это не работает, так как name
является строкой.Как мне переписать list_classes
, чтобы получить то, что я ищу?
Обновление: благодаря Игнасио за подсказку.Вот обновленный код:
def list_class_keywords():
global_dict = globals()
for name in global_dict:
obj = global_dict[name]
print name, hasattr(obj, 'KEYWORD')