gpt4 book ai didi

Python 对象属性是另一个对象,不会使用 pickle.load() 加载。我究竟做错了什么?

转载 作者:行者123 更新时间:2023-11-28 23:01:31 26 4
gpt4 key购买 nike

我有一个对象:

class X():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c

其属性 c,是列表对象的 a(不同种类):

class Y():
def __init__(self, x, y):
self.x = x
self.y = y

我 pickle 如下:

import pickle
pickle.dump(instance_of_class_X,open(dir, "wb"))

我加载如下:

import pickle
from some_library import X, Y # I import the two classes involved
pickle.load(open(dir,"rb"))

我收到以下错误:

AttributeError: 'module' object has no attribute 'Y'

不确定该怎么做,我们将不胜感激任何帮助。

最佳答案

可能您成为了 pickle 需求的牺牲品,需要通过与最初使用的相同的完全限定名称来使用该类。这取决于最初创建对象时 X 和 Y 所在的 namespace 。参见 this answerthis page .

关于Python 对象属性是另一个对象,不会使用 pickle.load() 加载。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971731/

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