Lewati ke konten utama

F1 · Modul 12

Kelas dan dataclass

47 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Kelas adalah cetakan, objek adalah benda yang dibuat darinya; __init__ mengisi atribut awal dan self adalah objek yang sedang dikerjakan.
  • Metode adalah fungsi milik objek; __repr__, __str__, dan metode khusus lain mengatur cara objek tampil dan dipakai dengan ==, <, +.
  • @dataclass membuat __init__, __repr__, dan == dari daftar field; petunjuk tipe tidak diperiksa saat program berjalan.
  • Nilai di badan kelas adalah atribut kelas yang dibaca bersama; list untuk setiap objek dibuat di __init__ atau dengan field(default_factory=list).
  • Pakai kelas untuk konsep inti yang dipakai di banyak tempat; dictionary tetap cocok untuk data sementara dan JSON.

Sebelum mulai

±4 jam.

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar: membuat kelas dengan class, __init__, dan self; memberi objek atribut dan metode; mengatur tampilan objek dengan __repr__ dan __str__ dan memakai metode khusus seperti __eq__, __lt__, dan __add__; menulis kelas data ringkas dengan @dataclass (nilai bawaan dan field(default_factory=...)); membedakan atribut objek dan atribut kelas; menyusun objek di dalam objek (komposisi); membuat "pabrik" objek dengan @classmethod; dan menimbang kapan memakai kelas dan kapan cukup dictionary.

Proyek: kasku langkah 12: Transaksi sebagai dataclass dengan ke_dict() dan Transaksi.dari_dict(d), lalu data.py memakai Transaksi sebagai pengganti dictionary.

Istilah di modul ini (50)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 34 contoh kode
  • 8 berkas latihan + tes
Lihat isi zip
  • BACA-DULU.txt
  • kas-lama.json
  • tidak-lengkap.json
  • format.py
  • contoh_f1_12_26.py
  • contoh_f1_12_50.py
  • contoh_f1_12_85.py
  • contoh_f1_12_145.py
  • contoh_f1_12_174.py
  • contoh_f1_12_200.py
  • contoh_f1_12_247.py
  • contoh_f1_12_278.py
  • contoh_f1_12_323.py
  • contoh_f1_12_434.py
  • contoh_f1_12_464.py
  • contoh_f1_12_508.py
  • contoh_f1_12_542.py
  • contoh_f1_12_777.py
  • contoh_f1_12_816.py
  • contoh_f1_12_852.py
  • contoh_f1_12_880.py
  • contoh_f1_12_913.py
  • contoh_f1_12_946.py
  • contoh_f1_12_1044.py
  • contoh_f1_12_1078.py
  • contoh_f1_12_1107.py
  • contoh_f1_12_1245.py
  • contoh_f1_12_1311.py
  • contoh_f1_12_1338.py
  • contoh_f1_12_1500.py
  • contoh_f1_12_1561.py
  • contoh_f1_12_2177.py
  • contoh_f1_12_2210.py
  • contoh_f1_12_2248.py
  • contoh_f1_12_2286.py
  • contoh_f1_12_2310.py
  • contoh_f1_12_2340.py
  • contoh_f1_12_2374.py
  • test_f1_12_1.py
  • test_f1_12_2.py
  • test_f1_12_8.py
  • test_f1_12_3.py
  • test_f1_12_4.py
  • test_f1_12_7.py
  • test_f1_12_5.py
  • test_f1_12_6.py