Kelas Data Python:Cara yang Lebih Baik untuk Menyimpan Data
Kelas data Python adalah kelas Python biasa yang memiliki @dataclass penghias. Ini khusus dibuat untuk menyimpan data. Sejak Python versi 3.7, Python menawarkan kelas data melalui modul bawaan yang disebut dataclass . Ada beberapa keunggulan dibandingkan kelas Python biasa yang akan kita jelajahi di artikel ini. Kami juga akan melihat contoh kode dan beberapa operasi umum yang mungkin ingin Anda lakukan dengan kelas data.
Daftar isi
Keuntungan menggunakan kelas data
Mengapa Anda harus menggunakan kelas data daripada kelas Python biasa? Pertama, mari kita lihat beberapa keuntungan yang ditawarkan kelas data Python.
Memerlukan jumlah kode minimal
@dataclass dekorator menambahkan banyak fungsi ke kelas tanpa menambahkan kode yang terlihat. Ini memungkinkan kelas data Anda menjadi sangat ringkas sambil tetap menawarkan banyak fitur berguna. Yang perlu Anda lakukan adalah menentukan bidang untuk menyimpan data Anda. Anda tidak perlu mendefinisikan fungsi apa pun.
Perbandingan
Dua kelas data Python dapat dibandingkan dengan == karena yang disebut metode dunder __eq__ diimplementasikan secara otomatis. Secara umum, kita dapat membandingkan objek Python apa pun yang mengimplementasikan metode khusus ini dengan objek lain dengan tipe yang sama.
Mencetak kelas data
Demikian pula, karena __repr__ diimplementasikan, Anda dapat mencetak kelas data dan mendapatkan representasi yang bagus darinya. Ini sangat berguna untuk debugging.
Kelas data memerlukan petunjuk jenis
Kelas data dibangun di sekitar sistem tipe baru (ish) yang ditawarkan Python. Menggunakan petunjuk jenis mengurangi kemungkinan bug dan perilaku tak terduga dalam kode Anda. Anda pada dasarnya mendeklarasikan jenis data yang harus disimpan dalam variabel.
Kelas data dapat memiliki nilai default. Menetapkan nilai default semudah memberikan nilai ke variabel. Misalnya, untuk membuat kelas Kartu kita memiliki nilai default Ratu hati, kita dapat melakukan hal berikut:
from dataclasses import dataclass
@dataclass
class Card:
rank: str = 'Q'
suit: str = 'hearts'
Mengonversi kelas data ke JSON
Kasus penggunaan yang umum adalah mengonversi kelas data Anda yang terstruktur dengan baik ke JSON. Misalnya, jika Anda ingin mengekspor data ke database, atau mengirimkannya ke browser. Berita buruknya di sini:tidak ada cara bawaan untuk mengonversi kelas data ke JSON.
Berita baiknya adalah, ada paket Python bernama dataclasses-json yang menyederhanakan tugas. Namun, itu membutuhkan dekorator tambahan. Anda harus menginstal paket dengan perintah pip install atau sesuatu seperti Pipenv, sebaiknya di dalam lingkungan virtual. Misalnya:
$ pip install dataclasses-json
Berikut adalah contoh bagaimana Anda dapat menggunakan paket:
from dataclasses import dataclass
from dataclasses_json import dataclass_json
@dataclass_json
@dataclass
class Card:
rank: str = 'Q'
suit: str = 'hearts'
card = Card()
print(card.to_json())
{"rank": "Q", "suit": "hearts"}
Metode lain adalah dengan menggunakan pewarisan Python dan mewarisi dari kelas JSONEncoder untuk membuat pembuat enkode kustom Anda sendiri. Keuntungannya di sini adalah Anda tidak perlu menginstal paket eksternal. Anda dapat mempelajari cara melakukannya di entri blog ini.
Terus belajar
Paket attrs Python memiliki versi lanjutan dari kelas data asli Python