4

此代码或类似代码是否允许在取消引用后通过垃圾收集拾取“某物”?

import something as this

if condition:
    import somethingelse as this

我想根据条件导入不同的模块以将其他模块替换为相同的别名,而不是在所有模块同时“加载”的情况下占用大量内存

谢谢

4

2 回答 2

2

不,原始模块仍缓存sys.modulessys.modules['something']. 完全卸载模块通常非常困难;请参阅在 Python 中卸载模块

于 2012-11-29T17:50:22.710 回答
0

加载的模块被缓存,因此消除您的引用并不会消除所有引用。它不会被垃圾收集。

于 2012-11-29T17:50:26.763 回答