实例化导入模块中的类的最佳方法

时间:2015-02-05 09:08:24

标签: python

我在A模块中有consumers\aB内有consumers\aC内有consumers\c。我使用以下代码来获取类。有没有其他方法可以达到同样的目的。 (这只适用于class_name.lower() == module_name)。

    bridge.py

    import inspect
    import types

    from consumers import a
    from consumers import b
    from consumers import c

    for name, val in globals().items():
    if isinstance(val, types.ModuleType):
        if 'consumers' in val.__name__:
            for k, v in inspect.getmembers(val):
                if k.lower() == name:
                    v()

我正在尝试这个,因为我不希望继任者做很多工作来增加消费者。

我看了, how-can-i-get-a-list-of-all-classes-within-current-module-in-python,/ how-do-you-get-all-classes-defined-in-a-module-but-not-imported以及更多链接,并提出了上述解决方案。

1 个答案:

答案 0 :(得分:0)

只需导入:

from consumers.a import A
from consumers.b import B
from consumers.C import C

a = A()
b = B()
c = C()