Objek yang Dapat Diubah & Tidak Dapat Diubah di Python {CONTOH}
Apa itu Objek yang Dapat Diubah?
Dapat berubah dalam Python dapat diartikan sebagai benda yang dapat berubah atau dianggap sebagai sesuatu yang sifatnya dapat diubah. Dapat diubah berarti kemampuan untuk mengubah atau mengedit suatu nilai.
Objek yang bisa berubah di Python memungkinkan pemrogram untuk memiliki objek yang dapat mengubah nilainya. Mereka umumnya digunakan untuk menyimpan kumpulan data. Itu dapat dianggap sebagai sesuatu yang telah bermutasi, dan keadaan internal yang berlaku dalam suatu objek telah berubah.
Apa itu objek yang tidak dapat diubah?
Objek yang tidak dapat diubah di Python dapat didefinisikan sebagai objek yang tidak mengubah nilai dan atributnya seiring waktu.
Objek-objek ini menjadi permanen setelah dibuat dan diinisialisasi, dan merupakan bagian penting dari struktur data yang digunakan Python.
Python digunakan dalam angka, tupel, string, set beku, dan kelas yang ditentukan pengguna dengan beberapa pengecualian. Mereka tidak dapat berubah, dan nilainya tetap permanen setelah diinisialisasi dan karenanya disebut tidak dapat diubah.
In Python, semuanya adalah objek
Dalam majalah Python Dalam bahasa pemrograman, segala sesuatu dapat dianggap sebagai objek yang terdiri dari daftar, bilangan bulat, dan fungsi. Fitur ini dapat dibandingkan dengan bahasa pemrograman lain yang mendukung objek.
Fitur ini dapat diverifikasi menggunakan a Python penerjemah seperti yang ditunjukkan di bawah ini: –
Python kode:
print("The following instance is an object:",isinstance(3,object))
print("Another instance for object", isinstance(True, object))
def my_func():
return "guru99"
print("This is a function example and regarded as an object in Python:", isinstance(my_func, object))
Keluaran:
A following instance is an object: True Another instance for object True This is a function example and regarded as an object in Python: True
Selanjutnya, Python menyediakan fungsi bawaan bernama id yang mengembalikan alamat objek seperti yang ada di memori Python bahasa pemrograman.
Python kode:
z=200
id(z)
print("The id of object is", id(z))
Keluaran:
the id of object is 9795360
Dalam kode di atas, fungsi id yang memiliki sintaks sebagai id(obj) memberikan alamat obj di Python ingatan. Di sini, ada objek bernama z, dan memiliki penugasan 200. Objek z kemudian diteruskan ke fungsi id sebagai id(z), dan Python mengirimkan alamat objek sebagai 9795360.
Objek yang bisa berubah di Python
Dalam objek yang bisa berubah, nilai objek berubah selama periode waktu tertentu.
Dalam contoh ini, kami telah menjelaskan objek yang bisa berubah Python, dan ini menggunakan daftar sebagai aplikasi objek yang bisa berubah seperti yang ditunjukkan di bawah ini: –
Python Kode:
mut_list = [1, 2, 3]
print("The list in Python",mut_list)
mut_list[0] = 'Gurru99'
mut_list
print("The list in Python after changing value",mut_list)
Keluaran:
The list in Python [1, 2, 3] The list in Python after changing value ['Gurru99', 2, 3]
Seperti yang bisa kita lihat pada contoh yang diberikan di atas, daftar yang bisa diubah di Python memiliki nilai 1,2,3. Elemen pertama dari daftar yang bisa diubah diubah dari 1 menjadi Guru99, dan tidak membuat objek baru saat nilai baru diinisialisasi.
Di sini kita dapat menggunakan metode id untuk memanfaatkannya. Berikut ini mengilustrasikan penggunaan metode id untuk objek yang dapat diubah seperti yang ditunjukkan di bawah ini: –
Python Kode:
mut_list = [1, 2, 3]
print("The list in Python",mut_list)
print("the id of the list is ",id(mut_list))
mut_list[0] = 'Gurru99'
mut_list
print("The mut list in Python after changing value",mut_list)
print("the id of the list is post change in value",id(mut_list))
Keluaran
The list in Python [1, 2, 3] the id of the list is 139931568729600 The list in Python after changing value ['Gurru99', 2, 3] the id of the list is post change in value 139931568729600
Gambar berikut mengilustrasikan objek yang dapat diubah di Python seperti yang ditunjukkan di bawah ini: –
Objek yang tidak dapat diubah di Python
Objek yang tidak dapat diubah di Python adalah objek yang instance-nya tidak berubah sepanjang periode. Instance yang tidak dapat diubah dari tipe tertentu, setelah dibuat, tidak berubah, dan ini dapat diverifikasi menggunakan metode id dari Python.
Mari kita ambil contoh objek bertipe integer Python yang mengilustrasikan konsep objek yang tidak dapat diubah di Python seperti yang ditunjukkan di bawah ini: –
Python Kode:
a=244
print("the number before change is",a)
print("the id of number before change is",id(a))
a=344
print("the number after change is",a)
print("the id of number after change is",id(a))
Keluaran
the number before a change is 244 the id of number before change is 9796768 the number before change is 344 the id of number before change is 140032307887024
Terlihat di atas ada perubahan pada “a”. Mari kita pelajari cara kerja mekanismenya:
- Tidak ada perubahan nilai objek saat inisialisasi “a” dengan 344.
- Sebaliknya, objek baru dibuat dan dibatasi dengan “a.”
- Objek lain yang ditetapkan sebagai 244 tidak lagi dapat diakses.
- Contoh di atas menggunakan objek integer.
Pada a=244, objek baru dibuat dan direferensikan ke “a” seperti yang ditunjukkan di bawah ini: –
Posting menggunakan a=344, ada objek baru yang direferensikan dengan “a”. Diagram berikut menunjukkan hal yang sama: –
Oleh karena itu, setiap kali ada pemberian nilai baru pada nama bertipe int, terjadi perubahan pada pengikatan nama tersebut dengan objek lain. Prinsip yang sama sejalan dengan tupel, string, float, dan Boolean karenanya disebut tidak dapat diubah.
Implikasi untuk kunci kamus di Python
Kamus dapat didefinisikan sebagai koleksi terurut yang menyimpan data dalam format kunci dan tidak mengizinkan duplikat. Kamus berisi satu kunci yang memiliki pasangan nilai terkait yang selaras dengannya. Tipenya dapat berubah, dan kontennya dapat diubah bahkan setelah inisialisasi dan pembuatannya.
Kapan saja, kuncinya menunjuk ke satu elemen tertentu pada satu waktu. Kunci kamus tidak dapat diubah.
Mari kita ambil skenario hipotetis seperti yang ditunjukkan di bawah ini: –
a = [4, 6]
b = [5, 6, 7]
my_dict = {a: 'x', b: 'y'}
print(my_dict)
Keluaran: – Di atas Python kode tidak menghasilkan keluaran apa pun, dan sebaliknya, menghasilkan kesalahan tipe yang tidak dapat dihash. Ini adalah situasi hipotetis dan tidak digunakan dalam Python penyusun.
Di sini, a didefinisikan sebagai [4,6], dan dalam kamus didefinisikan sebagai x. Di Sini, b didefinisikan sebagai [5,6,7], dan dalam kamus didefinisikan sebagai y.
- Kunci 'a' memiliki nilai [4,6], dan selanjutnya diinisialisasi ke x.
- Kunci 'b' memiliki nilai [5,6,7] yang selanjutnya diinisialisasi menjadi 'y' dalam kamus.
- Sekarang asumsikan bahwa nilai 'Sebuah' ditambahkan dengan 5 dan 7, yang merupakan kunci kamus.
- Kemudian kamusnya telah dimutasi, dan kamus tersebut akan memberikan keduanya 'x' dan 'y' sebagai nilai untuk kamus di atas.
Pertimbangkan skenario berikut seperti yang diilustrasikan di atas: –
a = [5, 6,7]
b = [5, 6, 7]
my_dict = {a: 'x', b: 'y'}
print(my_dict)
Oleh karena itu, sebagai bahasa pemrograman, Python membuat kunci kamus tidak dapat diubah, dan kamus adalah tipe data yang tidak dapat diubah.
Pengecualian dalam kekekalan
Namun, Python memberikan pengecualian terhadap kekekalan, pengecualian tersebut dapat diamati untuk tipe objek tupel. Tuple dapat berupa kombinasi tipe objek yang bisa berubah dan tidak bisa diubah. Mari kita ambil contoh untuk menjelaskan pengecualian dalam kekekalan seperti yang ditunjukkan di bawah ini: –
Python Kode:
tupexample=([1,1],'guru99')
print("the tuple before change",tupexample)
print("the id of tuple before change",id(tupexample))
tupexample=([2,2],'guru99')
print("the tuple after change",tupexample)
print("the id of tuple after change",id(tupexample))
Keluaran:
the tuple before change ([1, 1], 'guru99') the id of tuple before change 140649480694656 the tuple after change ([2, 2], 'guru99') the id of tuple after change 140649480694592
Anda dapat melihat pada kode di atas, bahwa elemen pertama, yaitu daftar, dapat diubah, sedangkan tuple tidak dapat diubah. Nilai tupel tidak dapat diubah, tetapi isi daftar yang ada di dalam tupel dapat diubah nilainya.
Oleh karena itu, hal ini menimbulkan pengecualian bahwa objek yang tidak dapat diubah tidak mengubah nilainya, tetapi nilai konstituennya mengubah nilainya.
Objek yang bisa berubah vs. objek yang tidak bisa diubah
Berikut adalah perbedaan utama antara Objek yang Dapat Diubah dan Objek yang Tidak Dapat Diubah:
| Objek yang bisa berubah | Objek yang tidak dapat diubah |
|---|---|
| Status objek dapat diubah setelah dibuat | Status objek tidak dapat diubah setelah dibuat |
| Objek yang bisa berubah tidak dianggap bersifat thread-safe. | Objek yang tidak dapat diubah dianggap bersifat thread-safe. |
| Objek yang bisa berubah tidak dibuat final, dan karenanya pemrogram dapat terus mengubah objek yang bisa berubah dan menggunakan objek yang sama. | Sangat penting untuk menjadikan kelas final ketika ada pembuatan objek yang tidak dapat diubah |
Python Tipe Data yang Tidak Dapat Diubah
| Kelas | Penjelasan | Tidak dapat diubah atau tidak |
|---|---|---|
| Bodoh | Nilai Boolean | Kekal |
| Int | Nilai integer (besarnya bisa berubah-ubah) | Kekal |
| Mengapung | Nomor titik mengambang | Kekal |
| Daftar | Urutan objek yang sifatnya bisa berubah | Yg mungkin berubah |
| Tupel | Urutan objek yang sifatnya tidak dapat diubah | Kekal |
| Str | String karakter | Kekal |
| set | kumpulan objek berbeda yang sifatnya tidak berurutan | Yg mungkin berubah |
| set beku | Tetapkan kelas yang sifatnya tidak dapat diubah | Kekal |
| Dikte | Kamus atau pemetaan asosiatif | Yg mungkin berubah |


