我有一个module.py
看起来像这样的 Python 2.x 文件:
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
以获得我正在寻找的东西?
更新:感谢 Ignacio 的提示。这是更新的代码:
def list_class_keywords():
global_dict = globals()
for name in global_dict:
obj = global_dict[name]
print name, hasattr(obj, 'KEYWORD')