【发布时间】:2019-10-13 07:13:48
【问题描述】:
我需要创建一堆可以腌制的partial 函数。对此进行实证测试,它似乎工作正常:
import pickle
import functools
pickle.dumps(functools.partial(int, base=2))
# b'\x80\x03cfunctools\npartial\nq\x00cbuiltins\nint\nq\x01\x85q\x02Rq\x03(h\x01)}q\x04X\x04\x00\x00\x00baseq\x05K\x02sNtq\x06b.'
但是,文档中没有明确说明这一点,并且functools.partial() 的给定“大致等效”功能不可选择。
我可以假设partial 对象在任何情况下都是可提取的(没有边缘情况,独立于 C/Python 实现)?
【问题讨论】:
-
@jonrsharpe:该实现被下面的
from _functools import partial取代。 -
@user2357112 可能,是的,但关键仍然是大致等效的实现不是实际的实现。
-
你读过泡菜文档吗?有一整节介绍了如何创建自己的 pickleable 类。
-
stackoverflow.com/questions/14550577/… 你读到这里的答案了吗?