您正在编写一个库,并且您知道您的用户正在pickle您的对象。有时添加新字段,这会造成BC问题,因为对象的旧pickle没有所需的字段。您希望为此案例添加一些测试
显而易见的方法是从旧版本中保存一些实际的pickle,以某种方式将它们放入测试套件中,并确保可以继续取消pickle。但是拥有硬编码的二进制测试数据是非常不酷的。有没有一种不需要手动二进制代码就可以编写测试的方法?我曾尝试在本地声明的类(旨在模拟“旧”版本)上“伪造”__module__
和__qualname__
字段,但我遇到了类似“pickle.PicklingError:cant pickle:它与torch.nn.modules.conv.Conv2d不是同一个对象”这样的错误,有好方法吗
目前没有回答
相关问题 更多 >
编程相关推荐