我可以在导入时动态生成python类吗?

时间:2016-09-15 17:47:33

标签: python dynamic import module ondemand

我有一个模块foo,它可以动态生成大量的类:

class BaseClass:
    pass

def make_class(n):
    class c(BaseClass):
        def __init__(self):
            print "I'm number {}".format(n)
    name = "class{}".format(n)
    globals()[name] = c
    c.__name__ = name

for i in range(0,1000):
    make_class(i)

我通过动态导入一些类来使用模块:

for i in [1, 8, 9]:
    t = __import__("foo",globals(),locals(),fromlist=["class{}".format(i)])
    # use t

问题是加载foo需要很长时间,实际上,在一次执行期间,我只需要几个类(但我不知道哪个类直到运行时)。

有没有办法在导入时动态创建我需要的类?

0 个答案:

没有答案