我有一个模块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
需要很长时间,实际上,在一次执行期间,我只需要几个类(但我不知道哪个类直到运行时)。
有没有办法在导入时动态创建我需要的类?