python用泡菜代替自我。

发布于 2025-02-11 06:08:32 字数 994 浏览 2 评论 0原文

我使用泡菜来实例化对象,如何解决没有成功分配的问题?

我使用picke.loads和picke.dumps步骤有什么问题吗?

mycode



import pickle


class A():
    def __init__(self, nid):
        self.nid = nid
        self._data_dict = {}

    def initData(self, nid, pickle_data=None):
        if nid == 2:
            print("use picke")
            self = pickle.loads(pickle_data)
            print(f"pickle loads _data_dict:{self._data_dict}")
        else:
            print("normal")
            self._data_dict['key'] = 1


if __name__ == '__main__':
    a = A(1)
    a.initData(1)
    print(f"a _data_dict::{a._data_dict}")
    pickle_data = pickle.dumps(a, 0)

    print('-'*100)
    b = A(2)
    b.initData(2, pickle_data)
    print(f"b _data_dict::{b._data_dict}")

结果

normal
a _data_dict::{'key': 1}
----------------------------------------------------------------------------------------------------
use picke
pickle loads _data_dict:{'key': 1}
b _data_dict::{}

I use pickle to instantiate objects,How to solve the problem of no successful assignment?

Is there something wrong with my use of the picke.loads and picke.dumps step?

mycode



import pickle


class A():
    def __init__(self, nid):
        self.nid = nid
        self._data_dict = {}

    def initData(self, nid, pickle_data=None):
        if nid == 2:
            print("use picke")
            self = pickle.loads(pickle_data)
            print(f"pickle loads _data_dict:{self._data_dict}")
        else:
            print("normal")
            self._data_dict['key'] = 1


if __name__ == '__main__':
    a = A(1)
    a.initData(1)
    print(f"a _data_dict::{a._data_dict}")
    pickle_data = pickle.dumps(a, 0)

    print('-'*100)
    b = A(2)
    b.initData(2, pickle_data)
    print(f"b _data_dict::{b._data_dict}")

result

normal
a _data_dict::{'key': 1}
----------------------------------------------------------------------------------------------------
use picke
pickle loads _data_dict:{'key': 1}
b _data_dict::{}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文