0

我有以下代码

import imp
from my_module import MyClass
import my_module

imp.reload(my_module)
print(MyClass == my_module.MyClass) # Result is False

为什么MyClass导入my_module的不等于my_module.MyClass

4

1 回答 1

1

您的问题的答案隐藏在您重新加载模块的行中。重新加载后,python 重新编译整个模块,重新创建其中的所有对象并加载它。

因此,在重新加载模块时,会创建一个全新的类,该类MyClass与之前的对象不同。

您可以检查此代码:

import imp
from my_module import MyClass
import my_module
print(MyClass == my_module.MyClass) # Result is True
imp.reload(my_module)
print(MyClass == my_module.MyClass) # Result is False
于 2012-09-13T12:18:56.347 回答