モジュール 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