gpt4 book ai didi

python - 使用pickle文件设置类属性?

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:55 24 4
gpt4 key购买 nike

我想通过 pickle 为自定义类实现加载和保存方法。(在本例中,我们可以不使用参数来实例化类,然后使用“load”分别填充a和b)

class A:
def __init__(self, a = None, b = None):
self.a = a
self.b = b

def save(self, fname):
# this works well
with open(fname, 'wb') as f:
pickle.dump(self, f)

def load(self, fname):
# This does not work
with open(fname, 'rb') as f:
self = pickle.load(f)

上面的代码不起作用,有人能给我一些建议吗?我正在使用 Python 3.6

最佳答案

您的load()应该返回一个新对象,例如:

def load(self, fname):
with open(fname, 'rb') as f:
return pickle.load(f)

以及调用,如下所示:

x = x.load(fn)

其中 x 是对象名称。

或者(参见评论)您可以只选择属性:

def load(self, fname):
with open(fname, 'rb') as f:
tmp = pickle.load(f)
self.a = tmp.a
self.b = tmp.b

但是,您最好将属性保存到 pickle 而不是对象中。

关于python - 使用pickle文件设置类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54373698/

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