gpt4 book ai didi

python - 在 Python 3 中 pickle 关键字参数

转载 作者:行者123 更新时间:2023-12-03 10:08:28 26 4
gpt4 key购买 nike

python 2 doc说:

Deprecated since version 2.3: Use function(*args, **keywords) instead of apply(function, args, keywords) (see Unpacking Argument Lists).



Pickle模块需要以下语法来定义 __reduce__转储对象的方法:
def __reduce__():
return (<A callable object>, <A tuple of arguments for the callable object.>)

(我知道从 __reduce__ 返回的元组长度可以 >2 但需要 <=5。在当前问题的上下文中考虑长度为 2 的情况。)

这意味着不可能将关键字参数传递给可调用对象。在 Python 2 中,我有以下解决方法:
def __reduce__():
return (apply, (<A callable object>, ((<args>,), <kwargs>))

但是, builtins.apply已在 中删除 python 3 .除了实现我自己的 builtins.apply 版本之外,还有其他选择吗?在 python 3 ?

最佳答案

您可以使用 functools.partial为了这:

from functools import partial

def __reduce__():
return (partial(<A callable object>, <kwargs>), ())

关于python - 在 Python 3 中 pickle 关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54802258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com