Python:在单个模块文件中搜索全局类

标签 python python-module global

我有一个 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 以获得我正在寻找的内容?


更新:感谢 Ignacio 的提示。这是更新后的代码:

def list_class_keywords():
    global_dict = globals()
    for name in global_dict:
        obj = global_dict[name]
        print name, hasattr(obj, 'KEYWORD')

最佳答案

globals() 是一个字典。将其编入索引。

但是您应该使用装饰器来枚举类。

关于Python:在单个模块文件中搜索全局类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959332/

相关文章:

ios - 如何持久化附加到全局数组 swift 2 的数据

python - 在 matplotlib 中向时间轴添加填充

python - 用selenium填写登录信息

python - 属性错误 : module 'fractions' has no attribute 'Fraction'

python - 指定python模块的开发版本

c - 全局数组问题不更新,C 编程

PHPUnit 和全局变量

python字典,将每个奇数行作为键,偶数行作为文件中的值

python - 如何在智能表中查找行 ID 或列 ID?

python - 将模块从一个 python 安装导入到另一个