python学习-序列化对象(pickle)
生活随笔
收集整理的這篇文章主要介紹了
python学习-序列化对象(pickle)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 序列化(pickle)
序列化(pickle)
序列化對象,引入內(nèi)置模塊:
import pickle
序列化寫文件使用二進(jìn)制的方式去寫,需要使用wb
我在定義時(shí),類成員變量使用了__修飾,表示私有成員,所以需要添加get函數(shù)獲取__name對象的值。
如果直接使用__name,則會(huì)報(bào)錯(cuò)。
為了做對比,定義了name和__name變量。
注意:自定義python文件的文件名時(shí),不要和python模塊名相同,否則會(huì)引入編譯錯(cuò)誤
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()
使用時(shí),__name不能直接獲取,會(huì)報(bào)錯(cuò)。而name則可以。
以上代碼就是把p1對象序列化到了p1文件中。
接下來學(xué)習(xí)如何使用:
修改成正確代碼,運(yùn)行結(jié)果:
代碼里面的p2其實(shí)就是之前的p1對象。
有一點(diǎn)需要注意:自定義類型,需要把定義的類型分享出來才能使用。
這點(diǎn)需要注意。
總結(jié)
以上是生活随笔為你收集整理的python学习-序列化对象(pickle)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 200万摄像头一个月存储多少g
- 下一篇: python学习-高阶函数(函数传参、返