python用泡菜代替自我。
我使用泡菜来实例化对象,如何解决没有成功分配的问题?
我使用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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论