您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么在pickle后在Python isinstance中出现意外行为?

为什么在pickle后在Python isinstance中出现意外行为?

这是取消选取程序的工作方式(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将失败。

python 2022/1/1 18:29:25 有203人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶