我有一个Python 2.x的module.py
文件看起来像这样的搜索全局类:的Python:在一个单一的模块文件
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')