“reload”函数不能删除已加载到内存中的变量,如果您在重新加载之前在模块中删除它。换句话说,即使在重新加载之前删除变量,它仍然存在。你知道吗
根据(DOCS):
When a module is reloaded, its dictionary (containing the module’s global variables) is retained.
下面是一个简单的例子:
import importlib
import time
def main():
import ex1
i = 0
while True:
importlib.reload(ex1)
ex1.x = ex1.x + 1
i = i + 1
print("loop:%d" %i)
print("x:%d" %ex1.x)
print(dir(ex1))
time.sleep(5)
重新加载前ex1模块的内容:
x = 1
y = 1
然后删除x
并重新加载ex1
,我们会发现x
仍然在dir(ex1)
所以,我的问题是如何得到一个dict
,其中x
在delete和reload之后不在dir
中?你知道吗
你读得不够多,在你引用的那句话之后:
因此,您引用的句子只适用于在旧版本的模块中定义的变量,而不是在新版本的模块中定义的变量。你知道吗
所以对于你的问题:
答案是你不能。但是你可以:
重新加载后。你知道吗
相关问题 更多 >
编程相关推荐