【发布时间】:2016-08-09 01:34:21
【问题描述】:
我注意到当我的对象包含对模块 pickling 的显式引用时,它会因此而失败。
但是,如果我将对该模块中的函数的引用粘贴到我的对象中,则可以成功地拾取和取消拾取它。
为什么 Python 可以腌制函数,但不能腌制模块?
【问题讨论】:
-
@Tommy 模块是对象
-
isinstance(math, object) => True
-
正确,抱歉。我试图了解,腌制模块的期望结果是什么?编码?国家?
-
代码? -- 按照这个逻辑,酸洗函数是更大的问题,因此我的问题的标题。状态? --其他对象像模块一样存储状态。
-
@MaxB: 其他对象也可以在其类上定义
__reduce__(或相关的更高级别的酸洗方法),但模块类型不能这样做,因为可能会酸洗/unpickle 会因模块而异。
标签: python pickle python-2.x python-module