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 bisa berubah di Python

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: –

Objek yang tidak dapat diubah di Python

Posting menggunakan a=344, ada objek baru yang direferensikan dengan “a”. Diagram berikut menunjukkan hal yang sama: –

Objek yang tidak dapat diubah di Python

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

Ringkaslah postingan ini dengan: