58. PYTHON (OOP) – Siklus Hidup Objek

Belajar Bahasa Python Lengkap

Siklus hidup pada objek terdiri dari creation, manipulation dan destruction. Tahap pertama dari siklus hidup pada sebuah objek adalah definisi class. Tahap selanjutnya adalah instansiasi pada sebuah instance, dimana init dipanggil. Memori dialokasikan untuk menyimpan instance. Sebelum ini, method new dipanggil. Hal ini biasanya meng-override hanya dalam kasus tertentu.

Selanjutnya, maka objek siap untuk digunakan. Kode lain dapat berinteraksi dengan objek dengan memanggil fungsi-fungsi padanya dan mengakses atribut-atributnya.

Akhirnya, objek akan selesai digunakan dan dihapus. Ketika sebuah objek dihapus, memori yang dialokasikan untuk objek tersebut dibersihkan dan dapat digunakan untuk yang lain.

Destruksi pada sebuah objek terjadi ketika reference count mencapai nol. Reference count adalah jumlah variabel dan elemen-elemen lain yang merujuk pada sebuah objek.
Jika tidak ada yang berinteraksi dengan objek, dengan kata lain objek tersebut memiliki reference count sama dengan nol, maka objek tersebut dapat dihapus dengan aman. Dalam beberapa situasi, dua atau lebih objek dapat merujuk hanya satu sama lain, dan oleh karena itu dapat dihapus juga.

Statemen del mengurangi satu reference count pada sebuah objek. Magic method untuk statemen del adalah del. Proses penghapusan objek ketika sudah tidak digunakan disebut dengan garbage collection.

Singkatnya, sebuah reference count pada objek bertambah ketika di-assign pada sebuah nama baru atau tempat dalam sebuah container (list, tuple, atau dictionary). Reference count pada objek akan berkurang ketika dihapus menggunakan del. Ketika reference count pada sebuah objek bernilai nol, maka Python akan secara otomatis menghapusnya.

# membuat objek <42>
a = 42

# menambahkan ref. count <42>
b = a

# menambahkan ref. count <42>
c = [a]


# mengurangi ref. count <42>
del a

# mengurangi ref. count <42>
b = 100

# mengurangi ref. count <42>
c[0] = 1

LANJUTKAN BACA MATERI LENGKAP


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.