モジュールをインポートすると、モジュール名はsys.modules
とglobals()
の両方に表示されます。再度削除すると、globals()
から削除されますが、依然としてsys.modules
にあります。それはなぜそうですか?答えはglobals()
のために相補的である一方でsys.modulesとglobalsのモジュール名
from mypackage import mymodule
'mypackage' in sys.modules # True
'mymodule' in sys.modules # False !
'mypackage.mymodule' in sys.modules # also True !
:
'mypackage' in sys.modules # False
'mymodule' in sys.modules # True
'mypackage.mymodule' in sys.modules # False
sys.modules、 'del sys.modules ['mymodule']'からモジュールを削除することができますが、これは時に便利です。 – SingleNegationElimination