Istilah variable sebetulnya kurang tepat digunakan untuk Python, lebih tepat disebut sebagai referensi kepada sebuah objek.
Namun bagi yang sudah pernah melakukan programming, kita sudah memiliki konsep variable dari bahasa sebelumnya. Tidak menjadi masalah kita menyebutnya sebagai variable.
Mari kita lihat apa yang tejadi sebetulnya saat kita mendeklarasikan variable. Contoh kita deklarasikan sebuah variable x dengan nilai integer 1000.
Deklarasikan variable a dengan suatu nilai, kemudian cek id dari objek a, nilai id yang tertulis disini bisa berbeda dengan Anda melakukannya.
Kemudian buat variable b dengan nilai lain, kemudian cek id nya, akan terlihat nilai id a dan b tidak sama.
Kemudian kita buat statement bahwa b = a, kemudian cek id b, maka id b akan sama dengan id a.
Fungsi id() ini sebetulnya amat jarang digunakan pada aplikasi nyata, lebih sering digunakan pada tutorial seperti ini dan untuk melakukan debugging,
Lebih umum digunakan is operator untuk menguji equality of identity, menguji 2 objek mereferensi pada objek yang sama.
Related Article : Variable (namespace) scoping
Namun bagi yang sudah pernah melakukan programming, kita sudah memiliki konsep variable dari bahasa sebelumnya. Tidak menjadi masalah kita menyebutnya sebagai variable.
Mari kita lihat apa yang tejadi sebetulnya saat kita mendeklarasikan variable. Contoh kita deklarasikan sebuah variable x dengan nilai integer 1000.
- Python akan membuat int object dengan nilai 1000.
- Sebuah object reference dengan nama x
- Kemudian mengatur agar objek x menunjuk ke objek int 1000
Apa yang terjadi bila kita mengubah nilai x = 500? Python tidak mengubah nilai dari objek int, karena int adalah immutable (tidak bisa diubah). Yang terjadi dibackground adalah
- Python akan membuat int objek baru dengan nilai 500
- Kemudian mengatur agar objek x menunjuk ke objek int 500
- Karena objek int 1000 sudah tidak dicapai oleh program, garbage collector pada satu saat terentu secara otomatis akan membuang objek int 1000 dari memory.
Dan bila kita menunjuk suatu variable sama dengan variable x tersebut. Contoh x = y, yang terjadi adalah
- Python akan membuat objek y
- kemudian membuat referensi antara objek y dengan objek int 500.
Maka sekarang keduanya (objek x dan y) menunjuk ke objek integer yang sama yaitu int 500
Mari kita gali lebih dalam, apa yang terjadi bila kemudian x kita assign dengan nilai baru, contoh x = 3000. Yang terjadi adalah
Python akan membuat objek int baru 3000
Kemudian objek x akan di referensikan dengan objek int 3000
Pada point ini, semua objek memiliki referensi. Tidak ada tugas bagi garbage collector.
id() function
Fungsi yang menngembalikan nilai identifier unik dari sebuah objek. Mari kita jalankan skenario penunjukan variable diatas di REPL.Deklarasikan variable a dengan suatu nilai, kemudian cek id dari objek a, nilai id yang tertulis disini bisa berbeda dengan Anda melakukannya.
Kemudian buat variable b dengan nilai lain, kemudian cek id nya, akan terlihat nilai id a dan b tidak sama.
Kemudian kita buat statement bahwa b = a, kemudian cek id b, maka id b akan sama dengan id a.
Fungsi id() ini sebetulnya amat jarang digunakan pada aplikasi nyata, lebih sering digunakan pada tutorial seperti ini dan untuk melakukan debugging,
Lebih umum digunakan is operator untuk menguji equality of identity, menguji 2 objek mereferensi pada objek yang sama.
>>> a = 496
>>> id(a)
34665040
>>> b = 1729
>>> id(b)
34665072
>>> b = a
>>> id(b)
34665040
>>> id(a) == id(b)
True
>>> a is b
True
Value Equality dan Identity
Jadi perlu kita perhatikan, antara identity dan value adalah yang berbeda. 2 objek yang berbeda bisa memiliki value yang sama. Sedangkan identity menunjuk pada objek yang sama. Mari kita coba di REPL
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True
>>> a is b
False
Related Article : Variable (namespace) scoping
Variable Pada Python
Reviewed by noname needed
on
June 12, 2018
Rating:
No comments: