1.优势:能够序列化python中所有的类型
2.缺陷:只能够在python中使用,无法跨语言传输
3.功能:产生一个对象并且保存在文件中,取出时还是一个对象
class C1:
def __init__(self, name, age):
self.name = name
self.age = age
def func1(self):
print('from func1')
def func2(self):
print('from func2')
obj = C1('max', 25)
import json
with open(r'a.txt', 'w', encoding='utf8') as f:
json.dump(obj, f) # TypeError: Object of type C1 is not JSON serializable,说明json模块无法将对象存入文件
import pickle
with open(r'a.txt', 'wb') as f:
pickle.dump(obj, f)
with open(r'a.txt', 'rb')as f:
data = pickle.load(f)
print(data) # <__main__.C1 object at 0x000001F214678C50>
data.func1() # from func1
data.func2() # from func2
print(data.name) # max