gpt4 book ai didi

python - 无法 pickle 本地对象 'ArgumentParser.__init__..identity

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

import argparse
import pickle

parser = argparse.ArgumentParser(description='Process some integers.')
_ = pickle.dumps(parser)

在我的代码中,ArgumentParser 对象被序列化。但是在运行时我得到错误 Can't pickle local object 'ArgumentParser.__init__.<locals>.identity .在 Lib/argparse.py identity是内部定义的函数 __init__方法,这可以防止序列化。如果将此函数转换为方法,则序列化成功。但我认为这种方式不是最好的解决方案,因为正在更改 python 库文件。如何序列化解析器对象的最佳方式?

最佳答案

我有一个使用子解析器和初始化 ArgumentParser 的程序明显延迟了启动,即使对于 —help 也是如此。我尝试了几件遇到这个的事情。我发现这很管用。

from argparse import ArgumentParser
from pickle import dumps

def identity(string):
return string

p = ArgumentParser()
p.register('type', None, identity)
x = dumps(p)

关于python - 无法 pickle 本地对象 'ArgumentParser.__init__.<locals>.identity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69896931/

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