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

Python Data Classes: Sederhanakan Manajemen Data dengan Sintaks Modern

Python Data Classes: Sederhanakan Manajemen Data dengan Sintaks Modern

Python data class adalah class Python reguler yang memiliki decorator @dataclass. Ini secara khusus dibuat untuk menyimpan data. Sejak versi Python 3.7, Python menawarkan data classes melalui modul bawaan yang disebut dataclass. Ada beberapa keuntungan dibandingkan class Python reguler yang akan kita jelajahi dalam artikel ini. Kami juga akan melihat contoh kode dan beberapa operasi umum yang mungkin ingin Anda lakukan dengan data classes.

Daftar isi

Keuntungan menggunakan data classes

Mengapa Anda harus menggunakan data class alih-alih class Python reguler? Pertama, mari kita lihat beberapa keuntungan yang ditawarkan oleh Python data class.

Memerlukan jumlah kode yang minimal

Decorator @dataclass menambahkan banyak fungsionalitas ke class tanpa menambahkan kode yang terlihat. Ini memungkinkan data class Anda sangat kompak sambil masih menawarkan banyak fitur berguna. Yang perlu Anda lakukan hanyalah mendefinisikan field untuk menyimpan data Anda. Anda tidak perlu mendefinisikan fungsi apa pun.

Perbandingan

Dua Python data class dapat dibandingkan dengan == karena metode dunder __eq__ yang disebutkan diimplementasikan secara otomatis. Secara umum, kita dapat membandingkan objek Python apa pun yang mengimplementasikan metode khusus ini dengan objek lain dari jenis yang sama.

Mencetak data class

Demikian pula, karena __repr__ diimplementasikan, Anda dapat mencetak data classes dan mendapatkan representasi yang bagus dari itu. Ini sangat berguna untuk debugging.

Data classes memerlukan type hints

Data classes dibangun di sekitar sistem tipe baru(ish) yang ditawarkan Python. Penggunaan type hints mengurangi kemungkinan bug dan perilaku yang tidak diinginkan dalam kode Anda. Anda secara esensial mendeklarasikan tipe data yang harus disimpan dalam variabel.

Contoh data class Python

Berikut adalah contoh data class dalam bekerja:

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

Data class dapat memiliki nilai default. Menetapkan nilai default sama mudahnya dengan menetapkan nilai ke variabel. Misalnya, untuk membuat class Card kami memiliki nilai default Queen of hearts, kita dapat melakukan sebagai berikut:

from dataclasses import dataclass @dataclass class Card: rank: str = 'Q' suit: str = 'hearts'

Mengonversi data class ke JSON

Kasus penggunaan umum adalah mengonversi data class yang terstruktur rapi ke JSON. Misalnya, jika Anda ingin mengekspor data ke database, atau mengirimkannya ke browser. Berita buruk di sini: tidak ada cara bawaan untuk mengonversi data class ke JSON.

Berita baiknya, ada paket Python yang disebut dataclasses-json yang menyederhanakan tugas ini. Namun, memerlukan decorator tambahan. Anda perlu menginstal paket dengan perintah pip install atau sesuatu seperti Pipenv, idealnya di dalam lingkungan virtual. Misalnya:

$ pip install dataclasses-json

Berikut adalah contoh cara Anda dapat menggunakan paket ini:

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 menggunakan pewarisan Python dan mewarisi dari kelas JSONEncoder untuk membuat enkoder kustom Anda sendiri. Keuntungan di sini adalah Anda tidak perlu menginstal paket eksternal. Anda dapat mempelajari cara melakukannya dalam posting blog ini.

Terus belajar


Python

  1. Menguasai Tipe Data Python: Panduan Praktis
  2. Menguasai Konversi & Casting Tipe Python: Panduan Komprehensif
  3. Menguasai Operator Python: Panduan Komprehensif
  4. Menguasai Exception Kustom Python: Panduan Praktis
  5. Menguasai Pemrograman Berorientasi Objek Python: Kelas, Warisan, Enkapsulasi & Polimorfisme
  6. Menguasai Warisan Python: Konsep, Sintaks, dan Contoh Praktis
  7. Data Center Consolidation: Cutting Costs, Enhancing Security, and Boosting Efficiency
  8. Memahami type() dan isinstance() dalam Python: Contoh Praktis
  9. Struktur Data Java: Menjelajahi Kelas Inti & Framework Koleksi
  10. Menguasai Abstraksi Data C++: Sederhanakan Desain dengan Pemisahan Antarmuka-Implementasi