在python中,在同一别名下导入新模块允许垃圾收集拾取先前分配的模块吗?

时间:2012-11-29 17:47:45

标签: python import garbage-collection

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

import something as this

if condition:
    import somethingelse as this

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

由于

2 个答案:

答案 0 :(得分:2)

不,原始模块仍在sys.modules缓存为sys.modules['something']。完全卸载模块通常很困难;见Unload a module in Python

答案 1 :(得分:0)

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