文章目录

  • 序列化(pickle)

序列化(pickle)

序列化对象,引入内置模块:
import pickle
序列化写文件使用二进制的方式去写,需要使用wb
我在定义时,类成员变量使用了__修饰,表示私有成员,所以需要添加get函数获取__name对象的值。
如果直接使用__name,则会报错。
为了做对比,定义了name和__name变量。
注意:自定义python文件的文件名时,不要和python模块名相同,否则会引入编译错误



import pickleclass person:def __init__(self, name, age):self.name = nameself.__name = nameself.age = ageself.__age = agedef getName(self):return self.__namedef getAge(self):return self.__agedef save(self):print("hello, this is {}, age is {}".format(self.__name, self.__age))p1 = person(name="jack", age=10)f = open('p1', mode='wb')pickle.dump(p1, f)
f.close()

使用时,__name不能直接获取,会报错。而name则可以。

以上代码就是把p1对象序列化到了p1文件中。
接下来学习如何使用:


class person:def __init__(self, name, age):self.name = nameself.__name = nameself.age = ageself.__age = agedef getName(self):return self.__namedef getAge(self):return self.__agedef save(self):print("hello, this is {}, age is {}".format(self.__name, self.__age))# 序列化对象的加载
import picklef = open('p1', mode='rb')
p2 = pickle.load(f)
f.close()print(p2, p2.name, p2.age)
print(p2, p2.getName(), p2.getAge())
p2.save()

修改成正确代码,运行结果:

代码里面的p2其实就是之前的p1对象。
有一点需要注意:自定义类型,需要把定义的类型分享出来才能使用。
这点需要注意。

python学习-序列化对象(pickle)相关推荐

  1. python json序列化对象_Python学习之json序列化

    一.什么是序列化 在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式.这个过程叫序列化,不同的序列化结果也不同,但目的是一样的,都是为了存储和传输 在 ...

  2. python学习笔记三 pickle序列化

    import pickle f=file('asdf.txt','wb') pickle.dump(saved_info,f)#保存pickle信息 f.close() f=file(asdf.txt ...

  3. JAYのpython学习笔记——对象和类

    为对象定义类 类定义对象的特征和行为 python会在运行时为每个对象赋予一个独特的id来辨识这个对象 数据域:即变量or实例变量,用于描述对象的状态,例如圆的radius,矩形的height和wid ...

  4. Python学习笔记:Io编程序列化

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. python的序列化是什么意思_python 什么是对象序列化

    我们知道在Python中,一切皆为对象,实例是对象,类是对象,元类也是对象.本文正是要聊聊如何将这些对象有效地保存起来,以供后续使用. pickle与cPickle pickle模块可以将Python ...

  6. Python学习-基础篇5 常用模块+类与对象(1)

     #random模块 1 import random2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数4 5 print(random.ran ...

  7. 零基础入门学习Python(29)pickle模块

    作用 pickle模块几乎可以把所有Python的对象都转化为二进制的形式存放,这个过程称为pickling,从二进制形式转换为对象的过程称为unpickling. pickle.dump9data, ...

  8. python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象

    一:dat文件 在我之前的博客中,我介绍了对txt文件操作的一些相关知识,以及如何对其进行读写操作,也介绍了文本文件和二进制文件的一些区别.虽然对txt文件操作已经能够满足储存数据的需求,但txt文件 ...

  9. cpickle支持的python版本_Python序列化模块pickle和cPickle

    Python的序列化是指把变量从内存中变为可以储存/传输的数据/文件的过程. 在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...

最新文章

  1. java中next的用法_关于java iterator的next()方法的用法
  2. AI模型加速进入万亿级时代,中国AI算力独占全球三成
  3. Unity3D学习笔记(十九):UGUI、Image、Text、Button
  4. Java - 死锁 Dead Lock 定位分析
  5. int printf(const char* fmt,...)
  6. CMake3:添加一个库
  7. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - G.重复字符串
  8. mogodbshell中数组对象查询修改方法
  9. portainer 启动mysql_docker 安装portainer容器后,启动/Portainer 安装MySQL并开启远程访问...
  10. DockOne微信分享(一三一):Juice——一种基于MesosFramework的任务云框架
  11. [FZYZOJ 1202] 金坷垃
  12. map.addoverlay php,覆盖物 - 百度地图开发文档 - php中文网手册
  13. 零基础带你学习计算机网络—(四)
  14. Leetcode 627. Swap Salary
  15. 人总有盲点,需要共同进步
  16. Java常用类和方法重点总结
  17. 批量提取html文字,批量提取网页内容(全自动)
  18. 原来最强赘婿在二次元长这样,秒穿次元壁的AI特效又双叒火了
  19. WORD转PDF格式快捷方法(转贴)
  20. 文件上传(WebUploader)成功之前自定义裁剪(vue-img-cutter),上传裁剪的图片,并兼容ie

热门文章

  1. SAP Spartacus 产品明细页面的 url 设计和数据源
  2. SAP Spartacus的Angular.json内容一览
  3. Angular Component 开发时属性和运行时属性的对照
  4. Spring中基于注解@AspectJ的AOP实现
  5. SAP ui5 ABAP repository handler class的 get_webcontent方法
  6. SAP Cloud for Customer移动端应用SAP推荐的网络时延参数
  7. SAP CRM WebClient UI ON_NEW_FOCUS的用途
  8. Opportunity search in backend for status - some default system status
  9. 如何处理CRM_ORGMAN 300 error message
  10. 给特殊类型的Note设置default值