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