我有模块 foo,在这个模块中我动态创建了类:
def superClassCreator():
return type("Bar", (object,), {})
现在,我想要实现的是让这个新的动态类作为这个模块的一个类可见:
import foo
dir(foo)
>>> [... 'Bar' ...]
你知道怎么做吗?
我有模块 foo,在这个模块中我动态创建了类:
def superClassCreator():
return type("Bar", (object,), {})
现在,我想要实现的是让这个新的动态类作为这个模块的一个类可见:
import foo
dir(foo)
>>> [... 'Bar' ...]
你知道怎么做吗?
您可以使用Bar = superClassCreator()
in foo
(在模块级别)。
或者,从另一个模块,您可以添加Bar
作为属性foo
:
import foo
foo.Bar = superClassCreator()
或者,如果必须从生成的类中获取名称:
import foo
generatedClass = superClassCreator()
setattr(foo, generatedClass.__name__, generatedClass)
在foo
模块中,您可以直接在以下位置进行设置globals()
:
generatedClass = superClassCreator()
globals()[generatedClass.__name__] = generatedClass
del generatedClass
使用可选del
语句generatedClass
再次从命名空间中删除名称。