4

「モジュールも単なるクラスだ」と聞いたことがあります。外部ファイルを作成せずに変数にモジュールを作成したい場合、主に単体テストと対話型インタープリターの実験など、いくつかの状況があります。私は次のようなものを想像します:

>>> import sys
>>>
>>> m = sys.Module() # <- This is the class I want
>>> m.foo = 'bar'
>>> m
<module 'm' (instantiated)>
>>>
>>> sys.modules['testmodule'] = m
>>>
>>> import testmodule
>>> print testmodule.foo
bar

注: モジュール dict に任意のオブジェクトをプラグインできることは承知していますが、特にモジュール インスタンスの作成に関心があります。

4

2 に答える 2

11
>>> import types
>>> help(types.ModuleType)
>>> mymod = types.ModuleType("MyMod")
>>> mymod
<module 'MyMod' (built-in)>
>>>
于 2012-06-18T12:56:09.033 に答える
1

また、答えを完全にするために、型がクラスと同じように機能することに気付きました (クラスですか?)。つまり、これを行うことができます。

>>> import sys
>>> Module = type(sys)
>>>
>>> mymodule = Module('mymodule')
>>> mymodule
<module 'mymodule' (built-in)>

実世界のアプリケーションでの使用はおそらく推奨されませんが、対話型インタープリターでは時間の節約になる可能性があります。

于 2012-06-18T13:36:45.697 に答える