我正在使用scipy.stats.distributions
中的分发类,需要序列化实例以进行存储和传输。这些是非常复杂的对象,它们不会发泡。我正在尝试开发一个使对象可以拾取的mixin类,这样我就可以使用重新混合的子类,否则它们的行为就像scipy.stats中的对象一样。我越是调查这个问题,我就越困惑,我想知道我是否错过了一个明显的方法来做到这一点。
我已经阅读了关于如何挑选实例方法的related question,但这只是我需要的整体解决方案的一部分,甚至可能不是必需的。我已经尝试编写严格遵循__init__
方法的pickle支持函数,并将对象序列化为__init__
的参数,但这似乎很脆弱,尤其是当子类可以在{{1}中定义任意子类特定的行为时}}
有人有优雅的解决方案可以分享吗?
更新:我找到了一个Python bug report,其中包含一个使用__init__
模块注册pickle支持函数的示例,用于pickle实例方法。对于我的情况,实例方法属性是唯一的阻止程序。但是,我仍然想知道是否有办法使用mixin类来解决这个问题,因为copy_reg
具有可能在所有情况下都不可取的全局效果。