次のようなPython 2.xmodule.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
探しているものを取得するには、どのように書き直す必要がありますか?
更新:ヒントをくれた Ignacio に感謝します。更新されたコードは次のとおりです。
def list_class_keywords():
global_dict = globals()
for name in global_dict:
obj = global_dict[name]
print name, hasattr(obj, 'KEYWORD')