Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

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.

Contoh kelas data Python

Berikut ini contoh kelas data di tempat kerja:

from dataclasses import dataclass

@dataclass
class Card:
    rank: str
    suit: str
    
card1 = Card("Q", "hearts")
card2 = Card("Q", "hearts")

print(card1 == card2)
# True

print(card1.rank)
# 'Q'

print(card1)
Card(rank='Q', suit='hearts')

Nilai default

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


Python

  1. Tipe Data Python
  2. Konversi Jenis Python dan Pengecoran Jenis
  3. Operator Python
  4. Pengecualian Kustom Python
  5. Pemrograman Berorientasi Objek Python
  6. Warisan Python
  7. Bagaimana konsolidasi pusat data mengubah cara kita menyimpan data
  8. type() dan isinstance() dengan Python dengan Contoh
  9. Java - Struktur Data
  10. Abstraksi Data dalam C++