pickle在新旧版本python中的问题

在尝试运行github项目deep-siamese-text-similarity时,遇到pickle序列化问题。在Python 2.7中处理包含super对象的实例没有问题,但升级到Python 3.x后,此操作导致错误。问题根源在于新旧版本对super对象处理的差异。通过查阅issue找到解决方案并进行验证。
摘要由CSDN通过智能技术生成

在运行github上deep-siamese-text-similarity 的代码时, 遇到args[0] from __newobj__ args has the wrong class 的错误, 在一个issue里找到了解决方法, 但是不知道为什么, 遂做了一点小实验做个验证. 在此记录.

python2.7

Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class A():
... def __init__():
... self.a = 5
... 
>>> a = A()
>>> a.a
5
>>> class B(A):
... def __init__(self):
... self.b = 6
... 
>>> b = B()
>>> b.b
6
>>> b.a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: B instance has no attribute 'a'
>>> class C(A):
... def __init__(self):
... sup 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值