如果我導入模塊,則模塊名稱將顯示在sys.modules
和globals()
之間。如果我再次刪除它,它將從globals()
中刪除,但仍位於sys.modules
。爲什麼這樣?sys.modules和globals中的模塊名稱()
import mymodule
'mymodule' in globals() # True
'mymodule' in sys.modules # True
del mymodule
'mymodule' in globals() # False
'mymodule' in sys.modules # Still True, why?
我還發現了以下區別:
from mypackage import mymodule
'mypackage' in sys.modules # True
'mymodule' in sys.modules # False !
'mypackage.mymodule' in sys.modules # also True !
而答案是互補的爲globals()
:
'mypackage' in sys.modules # False
'mymodule' in sys.modules # True
'mypackage.mymodule' in sys.modules # False
它*是*可能從sys.modules,'del sys.modules ['mymodule']'中刪除模塊,這有時很有用。 – SingleNegationElimination