Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan modul acar untuk penyirian objek dalam Python 2.x

Cara menggunakan modul acar untuk penyirian objek dalam Python 2.x

WBOY
WBOYasal
2023-07-30 18:07:581177semak imbas

Python ialah bahasa pengaturcaraan yang berkuasa dan mudah digunakan yang menyediakan banyak modul dan alatan terbina dalam untuk membantu pembangun menyelesaikan pelbagai tugas. Salah satu modul yang biasa digunakan ialah pickle, yang membolehkan kami menukar objek Python kepada aliran bait untuk bersiri dan penyahserikatan. Artikel ini akan memperkenalkan cara menggunakan modul acar untuk penyirian objek dalam Python 2.x dan memberikan beberapa contoh kod.

1. Apakah siri objek

Siri objek merujuk kepada proses menukar objek kepada aliran bait supaya ia boleh dihantar dan disimpan dalam persekitaran yang berbeza. Dalam Python, objek boleh menjadi contoh mana-mana kelas, termasuk kelas tersuai dan terbina dalam. Tujuan utama penyirian objek adalah untuk menyimpan objek dalam ingatan ke cakera atau menghantarnya melalui rangkaian ke komputer lain. Penyahserialisasian ialah proses menukar aliran bait kembali kepada objek.

2. Gunakan modul jeruk untuk pensirian objek

Dalam Python 2.x, kita boleh menggunakan modul jeruk untuk pensirilan objek dan penyahserilan. Modul ini menyediakan dua fungsi utama: dump() dan load(). Fungsi dump() mensirikan objek ke dalam strim bait dan menyimpannya ke fail, manakala fungsi load() akan memuatkan strim bait daripada fail dan menyahsirikannya ke dalam objek.

Di bawah ialah contoh mudah yang menunjukkan cara menggunakan modul acar untuk pensirilan objek dan penyahsirilan.

import pickle

# 定义一个类
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 创建一个对象
person = Person('张三', 18)

# 将对象序列化并保存到文件中
with open('person.pickle', 'wb') as file:
    pickle.dump(person, file)

# 从文件中加载字节流并反序列化为对象
with open('person.pickle', 'rb') as file:
    loaded_person = pickle.load(file)

# 打印反序列化后的对象属性
print("姓名:", loaded_person.name)
print("年龄:", loaded_person.age)

Dalam contoh di atas, kami menentukan kelas bernama Person, yang mengandungi dua atribut: nama dan umur. Kami mencipta objek Orang dan menyusunnya menjadi strim bait, kemudian menyimpannya ke fail person.pickle. Seterusnya, kami memuatkan aliran bait daripada fail, menyahsirikannya menjadi objek, dan mencetak nilai harta.

3. Nota

Anda perlu memberi perhatian kepada perkara berikut apabila menggunakan modul acar untuk penyirian objek:

  1. acar hanya boleh mensiri jenis objek khusus Python dan tidak menyokong kaedah kelas tersuai bersiri (iaitu dalam fungsi kelas ditakrifkan dalam ) dan kaedah statik.
  2. Jika anda ingin mensirikan objek kelas tersuai, anda perlu memastikan bahawa kod definisi kelas juga tersedia semasa penyahsirilan. Iaitu, sebelum desirialisasi, takrifan kelas perlu diimport supaya Python boleh mengenal pasti jenis objek dengan betul.
  3. acar bukan protokol selamat dan hanya boleh digunakan untuk data yang dipercayai. Apabila berurusan dengan data yang tidak dipercayai, isu keselamatan seperti suntikan kod dan pelaksanaan kod jauh mungkin berlaku.
  4. Jika objek bersiri berubah, ia boleh menyebabkan isu keserasian versi semasa penyahserilan.
  5. Modul jeruk hanya boleh digunakan dalam Python dan tidak menyokong interaksi dengan bahasa pengaturcaraan lain.

Ringkasan:

Artikel ini memperkenalkan secara ringkas cara menggunakan modul jeruk untuk pensirilan objek dalam Python 2.x. Kami belajar tentang konsep pensirilan objek dan cara menggunakan fungsi pickle's dump() dan load() untuk melaksanakan pensirilan dan penyahsirilan objek. Pada masa yang sama, kami juga menyebut beberapa langkah berjaga-jaga untuk membantu anda menggunakan modul jeruk dengan lebih baik.

Walaupun modul jeruk Python 3.x mempunyai beberapa perbezaan daripada versi 2.x, kebanyakan penggunaan dan konsep adalah serupa. Oleh itu, kandungan yang diperkenalkan dalam artikel ini juga mempunyai nilai rujukan untuk modul jeruk dalam Python 3.x.

Atas ialah kandungan terperinci Cara menggunakan modul acar untuk penyirian objek dalam Python 2.x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn