这是取消选取程序的工作方式(site-packages / pickle.py):
def find_class(self, module, name):
# Subclasses may override this
__import__(module)
mod = sys.modules[module]
klass = getattr(mod, name)
return klass
查找并实例化一个类。
因此,当然,如果将一个类替换为一个具有相同名称的类,则klass = getattr(mod, name)
将会返回新类,并且该实例将属于该新类,因此isinstance将失败。