अगर मैं एक मॉड्यूल आयात करते हैं, मॉड्यूल का नाम ऊपर sys.modules
और globals()
दोनों में पता चलता है। अगर मैं इसे फिर से हटा देता हूं, तो इसे globals()
से हटा दिया जाता है, लेकिन फिर भी sys.modules
में रहता है। ऐसा क्यों है?मॉड्यूल का नाम()
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