十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章给大家分享的是有关Python使用pickle实现序列化和反序列化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联公司主要从事成都做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务韶山,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792代码实现
import pickle class BeSerializing: def __init__(self): self.var = "a test string." def print_var(self): print(f"self var value is:{self.var}") class Serializing: def do_serializing(self): obj = BeSerializing() # with的好处是会最后自动释放获取的资源,对于文件就是最后会自己close() with open("test_pickle.obj", "wb") as file_handler: # 序列化,将对象写到文件 pickle.dump(obj, file_handler) class DeSerializing: def do_serializing(self): with open("test_pickle.obj", "rb") as file_handler: # 反序列化,将对象从文件中还原 # 注意,虽然python的变量不需要使用前先定义类型,但使用时是要被格式化成确定类型的 # 所以,如果反序列化类和被序列化类不在同一文件中,那么需要将被序列化类import进来,不然会因找不到被反序列化类而反序列化失败 obj = pickle.load(file_handler) print(f"obj type: {type(obj)}\n" f"obj.var value: {obj.var}") if __name__ == "__main__": obj_se = Serializing() obj_se.do_serializing() obj_de = DeSerializing() obj_de.do_serializing()