注册动态类我已经模块FOO,这个模块里面我动态创建的类:蟒蛇如何在模块
def superClassCreator():
return type("Bar", (object,), {})
现在,我要实现的是让这个新的动态类可见的一类此模块:
import foo
dir(foo)
>>> [... 'Bar' ...]
你知道如何做到这一点吗?
注册动态类我已经模块FOO,这个模块里面我动态创建的类:蟒蛇如何在模块
def superClassCreator():
return type("Bar", (object,), {})
现在,我要实现的是让这个新的动态类可见的一类此模块:
import foo
dir(foo)
>>> [... 'Bar' ...]
你知道如何做到这一点吗?
您可以在foo
(在模块级别)使用Bar = superClassCreator()
。
备选地,来自另一个模块,可以在foo
添加Bar
作为一个属性:
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
名称。
语法纳粹无处不在;) – mnowotka
语法nazi! :-P –