2014-02-26 23 views
1

剛剛有這個問題流入我的腦海。Python - 定期模塊導入和取消導入

目前我編寫的程序很小,不會運行很長時間。但是很快我就要創建能夠在一天中同時運行的程序。也許在這個程序中最初會使用一個模塊,但是在一天的大部分時間裏都不需要。因此,是否可以卸載一個模塊?

在搜索時,我似乎無法找到'是'的答案,那麼我是否可以正確地認爲它在Python中實際上不可行,即使在當前寫作時也是如此?

我知道的唯一功能刪除了參考,但不是實際的進口:

import module 
module.X() 
del module 
module.X() 

_

Output: #NameError, can't find `module` 
+0

'del module'會刪除本地命名空間中的引用,但它仍然至少會從sys.modules引用,所以模塊對象本身不會被gc化(至少與我是正確的,'sys.modules'不使用弱引用,我敢肯定它沒有)。 –

+0

[在Python中卸載模塊]可能的重複(http://stackoverflow.com/questions/3105801/unload-a-module-in-python) – zhangxaochen

+2

我不知道這是否可能,但我建議不用擔心。釋放模塊不會從根本上減少內存消耗或任何事情。 – Kevin

回答

0

要釋放一個不再使用的模塊:

del module_name 
del sys.modules[module_name] 

如果你走這條路線,確保在任何需要它的功能中都有該模塊的導入。

請注意,這可能對內存消耗的影響很小(如果有的話)。