[英]Python- Saving list of objects and its attributes
我正在尝试保存对象列表及其伴随的相应属性。 在下面的示例中,您可以看到我首先定义了对象和属性的列表,然后将其保存。 保存文件后,我删除列表以显示为空,但是当我调用加载函数时,列表仍然为空。 有人知道为什么吗?
import pickle
class Company(object):
def __init__(self, name, value):
self.name = name
self.value = value
class Define_Companies():
company_list = []
def run_this(self):
for x,y in enumerate(range(0,6)):
company_list_object = Company(x,y)
Define_Companies().company_list.append(company_list_object)
for x in Define_Companies().company_list:
print(x.name)
Define_Companies().run_this()
def save_this_information():
with open('company_data.pkl', 'wb') as output:
pickle.dump(Define_Companies().company_list, output, pickle.HIGHEST_PROTOCOL)
Define_Companies().company_list.clear()
save_this_information()
def load_the_information():
with open('company_data.pkl', 'rb') as input:
Define_Companies().company_list = pickle.load(input)
print(Define_Companies().company_list)
load_the_information()
输出:
0
1
2
3
4
5
[]
您可以在保存功能之前调用Define_Companies().company_list.clear()
,这将清除列表中的所有元素。 您正在尝试保存一个空列表。
还要注意,您不需要具有Define_Companies
的实例即可访问类变量company_list
因为它绑定到该类而不是实例。 要访问该列表,您只需键入Define_Companies.company_list
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.