在Python中,?pickle?模塊常用于實現對象的序列化和反序列化,以下是一個簡單的實例:
?
import pickle
?
# 定義一個類
class Person:
? ? def __init__(self, name, age):
? ? ? ? self.name = name
? ? ? ? self.age = age
?
# 創建一個Person對象
person = Person("Alice", 30)
?
# 序列化對象
with open('person.pkl', 'wb') as file:
? ? pickle.dump(person, file)
?
# 反序列化對象
with open('person.pkl', 'rb') as file:
? ? deserialized_person = pickle.load(file)
?
print(f"反序列化后的對象:名字是 {deserialized_person.name},年齡是 {deserialized_person.age}")
?
?
在上述代碼中:
?
1.?首先定義了一個?Person?類,包含?name?和?age?兩個屬性。
2.?創建了一個?Person?類的實例?person?。
3.?使用?pickle.dump()?方法將?person?對象序列化,并保存到?person.pkl?文件中。?pickle.dump()?方法接受兩個參數,第一個是要序列化的對象,第二個是文件對象,這里使用?'wb'?模式以二進制寫入方式打開文件。
4.?然后使用?pickle.load()?方法從?person.pkl?文件中讀取數據并反序列化,得到?deserialized_person?對象,最后打印出反序列化后對象的屬性值。
?
請注意,?pickle?模塊反序列化時可能存在安全風險,因為它會執行文件中的Python代碼,所以不要反序列化不可信來源的數據。