更新时间:2023-05-02 来源:黑马程序员 浏览量:

在Python中,pickling和unpickling是用于序列化和反序列化对象的过程。
Pickling是将Python对象转换为字节流的过程,以便可以将其保存到文件、数据库或通过网络传输。通过pickling,可以将复杂的对象转换为一系列字节,然后可以将这些字节重新转换回对象。这对于在不同的Python解释器之间传递对象或将对象永久保存在存储介质上都非常有用。
Unpickling是pickling的反向过程,即从字节流中恢复原始对象的过程。通过unpickling,可以将之前pickled的对象重新还原为原始的Python对象。
下面是一个简单的代码演示:
import pickle
# 定义一个对象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
# Pickling:将对象转换为字节流
person = Person("Alice", 25)
pickled_person = pickle.dumps(person)
# 打印pickled_person,即字节流表示的对象
print(pickled_person)
# Unpickling:将字节流转换为对象
unpickled_person = pickle.loads(pickled_person)
# 打印unpickled_person,即恢复的对象
print(unpickled_person) 输出:
b'\x80\x04\x95\x1b\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x06Person\x94\x93\x94)\x81\x94}\x94(\x8c\x04name\x94\x8c\x05Alice\x94\x8c\x03age\x94K\x19ub.' Person(name=Alice, age=25)
在上面的示例中,我们首先定义了一个Person类,该类具有name和age属性。然后,我们创建一个Person对象,并使用pickle.dumps()函数将其转换为字节流。接下来,我们使用pickle.loads()函数将字节流转换回原始对象。
注意:在实际使用pickling和unpickling时,可能需要将字节流写入文件或从文件中读取字节流。这只是一个简单的示例,用于演示pickling和unpickling的基本概念。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27