Konstruktor
Konstruktor umumnya digunakan untuk instantiasi objek. Tugas konstruktor adalah
menginisialisasi (menetapkan nilai) ke anggota data kelas ketika objek kelas dibuat. Dalam
Python metode __init __ () disebut konstruktor dan selalu disebut ketika suatu objek dibuat.
Jenis-jenis konstruktor
1. Construktor default
Konstruktor default adalah konstruktor sederhana yang tidak menerima argumen apa pun.
Definisi ini hanya memiliki satu argumen yang merupakan referensi ke instance yang sedang
dibangun.
Contoh :
Output :
2. Construktor Parameters
Konstruktor parameters mengambil argumen pertama sebagai referensi ke instance yang sedang
dibangun dikenal sebagai self dan sisa argument disediakan oleh programmer.
Contoh :
Output :
Destruktor
Destructors dipanggil ketika suatu objek dihancurkan. Dalam Python, destruktor tidak diperlukan
sebanyak yang dibutuhkan di C ++ karena Python memiliki pengumpul sampah yang menangani
manajemen memori secara otomatis.
Metode __del __ () dikenal sebagai metode destruktor dengan Python. Disebut ketika semua
referensi ke objek telah dihapus yaitu ketika sebuah objek dikumpulkan sampah.
Contoh 1:
Berikut adalah contoh sederhana dari destruktor. Dengan menggunakan kata kunci del, saya
menghapus semua referensi objek 'obj', oleh karena itu destructor dipanggil secara otomatis.
Output :
Catatan: destruktor dipanggil setelah program berakhir atau ketika semua referensi ke objek
dihapus yaitu ketika jumlah referensi menjadi nol, bukan ketika objek keluar dari ruang lingkup.
Contoh 2:
Contoh ini memberikan penjelasan dari catatan yang disebutkan di atas. Di sini, perhatikan
bahwa destruktor dipanggil setelah ‘Program End…’ dicetak.
Output :
Contoh 3 :
Sekarang, perhatikan contoh berikut.
Output :
Dalam contoh ini ketika fungsi fun () dipanggil, ia menciptakan turunan dari kelas B yang beralih
sendiri ke kelas A, yang kemudian menetapkan referensi ke kelas B dan menghasilkan referensi
melingkar.
Secara umum, pengumpul sampah Python yang digunakan untuk mendeteksi jenis referensi
siklik ini akan menghapusnya tetapi dalam contoh ini penggunaan destruktor kustom menandai
item ini sebagai "tidak dapat dikumpulkan".
Sederhananya, ia tidak tahu urutan untuk menghancurkan objek, jadi ia meninggalkannya. Oleh
karena itu, jika instance Kalian terlibat dalam referensi melingkar mereka akan hidup dalam
memori selama aplikasi berjalan.
Enkapsulasi Pada Python
lalu bagai mana kita menampilkan nilai nama ataupun megganti/memberikan nilai nama baru?
maka kita harus membuat fungsi untuk keduanya
singkatnya decorator membuat sebuah property yang mewakili sebuah attribute ataupun
method,disini property nama mewakili attribute __nama