python对象序列化

python对象序列化

  1. pickling和unpickling
    python对象的序列化和反序列化:通过将对象序列化可以将其存储在变量或者文件中(pickling),可以保存当时对象的状态,实现其生命周期的延长。并且需要时可以再次将这个对象读取出来(unpickling)。
  2. 原理:
    将对象所属于的类和所以属性值保存下来,可以通过这些值重定义对象,从而还原对象。
  3. 实现:
    使用pickle模块
    • 方法:
      • dumps(obj):保存在变量中;
      • loads(byte_data):从变量中还原;
      • dump(obj,file):保存在文件中;
      • load(byte_data,file):从文件中还原。
    • 示例:
    import pickle
    
    #自定义类
    class Student:
        def __init__(self,n,a,h):
            self.name = n
            self.age = a
            self.height = h
        
        def age_add(self,year):
            self.age += year
            self.height += year*5
        
    stu01 = Student('wang',17,170)
    print("初始状态:",stu01)
    print(stu01.age,stu01.height)
    
    stu01.age_add(2)
    print("两年后:",stu01)
    print(stu01.age,stu01.height)
    
    
    #dumps:将对象序列化存储在变量中
    du = pickle.dumps(stu01)
    print(du)
    
    #load:还原对象
    ret = pickle.loads(du)
    print("loads:",ret)
    print(ret.age,ret.height)
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值