Python

Bisa berubah vs. Objek yang Tidak Dapat Diubah dengan Python

Bisa berubah vs. Objek yang Tidak Dapat Diubah dengan Python

Python dikatakan sebagai bahasa yang paling menakjubkan karena banyak orang memilihnya sebagai bahasa pertama mereka untuk pemrograman karena keanggunan dan kesederhanaannya. Terima kasih kepada komunitasnya yang luas, kelebihan paket, dan sintaks yang konsisten, para profesional berpengalaman juga menggunakan Python. Meskipun ada satu hal yang tampaknya mengganggu pemula dan beberapa pengembang profesional - objek dari Python.

Bisa berubah vs. Kekal

Yg mungkin berubah entitas bisa mengubah mereka keadaan atau substansi untuk menggambarkan disparitas, dan kekal entitas tidak dapat mengubah status atau substansinya. Jadi ketika sebuah objek dibuat, spesial ID objek dialokasikan. Saat runtime, jenis objek ditentukan dan tidak dapat diperbarui nanti. Bentuk bawaan seperti variabel int, float, bool, str, tuple, dan Unicode tidak dapat diubah. Objek seperti daftar, set, array byte, dan kamus kategori bawaan dapat diubah.

Memahami ID dan Jenis Fungsi Type

yang terintegrasi Indo() metode berisi id objek hanya sebagai bilangan bulat. Bilangan bulat itu biasanya mengacu pada posisi penyimpanan objek. 'aku s' operator menghubungkan identitas dua objek satu sama lain. Fungsi terintegrasi, Tipe(), mengembalikan jenis objek. Bandingkan dua variabel 'x' dan 'kamu', memiliki nilai yang sama, menggunakan operator persamaan 'x == kamu', itu akan menghasilkan Benar. Menggunakan id() fungsi, kami telah membandingkan alamat memori dari kedua variabel, itu akan menghasilkan Salah karena kedua variabel berbeda dan terletak di lokasi memori yang berbeda, meskipun nilai yang dikandungnya sama.

Buat variabel lain 'z' yang menunjuk ke entitas identik yang 'x' mengarahkan ke, menggunakan operator penugasan '='. Menggunakan 'aku s' operator kami telah menemukan bahwa keduanya, menunjuk ke objek yang sama dan memiliki alamat memori yang sama.

Jenis Variabel yang Tidak Dapat Diubah

Mari kita lihat beberapa tipe variabel yang tidak dapat diubah.

Tipe Data Bilangan Bulat

Mari kita mendefinisikan variabel 'x'memiliki nilai'10'. Sebuah built-in id() metode digunakan untuk mengetahui lokasi 'x' dalam memori dan Tipe() digunakan untuk mengidentifikasi jenisnya. Ketika kita mencoba untuk mengubah nilai 'x', itu berhasil diubah, meskipun alamat memori kembali berbeda. Itu karena kita belum benar-benar mengubah nilai 'x', tetapi kami telah membuat objek lain dengan nama yang sama 'x' dan berikan nilai yang berbeda. Kami telah mengikat nama 'x' ke nilai baru. Sekarang, setiap kali Anda menelepon 'x' itu akan menampilkan nilai baru.

Tipe Data String

Sama untuk tipe data string, kami tidak dapat mengubah yang sudah ada variabel tapi kita harus membuat yang baru dengan nama yang sama. Di sini kita punya ditentukan variabel string 'x' dan ingin menambahkan 'w' ke indeks nolnya. Ini akan menghasilkan KetikError, menunjukkan bahwa objek string tidak mendukung pembaruan.

Tipe Data Tuple

Lihat sekilas jenis Tuple variabel, kita telah mendefinisikan tupel dengan 4 nilai. Kami telah menggunakan id() fungsi untuk menampilkan alamatnya. Ketika kita ingin mengubah nilainya di 0 indeks, itu memberikan KetikError tuple itu tidak mendukung penugasan atau pembaruan item.

Sebaliknya, Anda bisa memperbarui seluruh tuple dengan mendefinisikannya dari menggaruk. Sekarang, setiap kali Anda memeriksanya, Anda akan menemukan nilai baru dan alamat baru.

Tipe Data Apung

Kami memiliki variabel tipe float 'x'. Menggunakan id() fungsi, kita harus mencari tahu alamatnya. Ketika kita ingin mengubah nilainya di indeks 1, itu memberikan KetikError float itu tidak mendukung modifikasi item.

Sebaliknya, kami telah memperbarui mengapung dengan mendefinisikannya lagi. Sekarang, kapan pun kami menyebutnya, kami akan menemukan nilai baru dan alamat baru.

Jenis Variabel yang Dapat Diubah

Sekarang kita akan melihat beberapa tipe variabel yang bisa berubah.

Daftar Tipe Data

Kami telah mendefinisikan daftar bernama 'x' dan tambahkan beberapa nilai ke dalamnya. Sementara Lari, itu akan menampilkan nilai daftar. Ketika kamu memperbarui daftar dengan menetapkan nilai baru ke indeks 0 dan 2, itu akan berhasil melakukannya.

Contoh yang dijelaskan di atas adalah contoh modifikasi yang sederhana dan mendasar. Untuk memeriksa mutabilitas ke tingkat yang berbeda, mari kita lihat contoh yang sama dengan sedikit perubahan. Kami telah membuat nama baru 'kamu' dan ikat ke objek daftar yang sama. Ketika kami memeriksa apakah 'x' sama dengan 'kamu', itu mengembalikan True. Di sisi lain, keduanya 'x' dan 'kamu' punya sama Penyimpanan alamat.

Sekarang tambahkan nilai baru ke a daftar nama 'x' dan periksa output yang diperbarui.

Sekarang, ketika Anda memeriksa daftar nama 'y', itu akan menampilkan daftar yang sama seperti yang ditampilkan untuk 'x'. Artinya, ketika kita memperbarui daftar objek yang sama, yang memiliki dua nama berbeda 'x' dan 'y'. Keduanya sama dan berbagi alamat memori yang sama bahkan setelah modifikasi.

Tipe Data Kamus

Karena kamus adalah variabel yang umum digunakan dalam Python, mari kita lihat mutabilitas kamus. Kami telah mendefinisikan kamus bernama 'dikte' dengan tiga kunci dan nilainya. Ketika kami mencetaknya, itu akan menampilkan semua isinya. Anda dapat mencetak setiap nilai kamus secara terpisah, serta menggunakan kunci bukannya indeks.

Kami ingin perubahan nilai tertentu dengan memperbarui kunci 'Nama'. Ini akan menampilkan kamus yang diperbarui. Kunci kamus tidak dapat diubah.

Mari kita definisikan a daftar dan tupel terpisah. Pastikan bahwa tupel harus memiliki daftar jenis nilai di dalamnya dan daftar memiliki nilai tipe tupel di dalamnya akibatnya.

SEBUAH tupel mempunyai sebuah daftar di atasnya 0 indeks jadi ketika Anda berubah di 0 indeks dari tuple, Anda harus menyebutkan mention indeks dari daftar di mana Anda ingin mengubah. Perubahan terjadi karena daftarnya tidak dapat diubah.

Sebaliknya, variabel daftar tidak dapat diperbarui karena memiliki tupel di 0 indeks, yang bisa berubah.

Kesimpulan

Kami telah melihat variasi dalam Python antara bisa berubah dan tidak berubah. Anda harus membuat pikiran Anda jelas bahwa segala sesuatu di Python disebut sebagai objek. Terutama, perbedaan antara objek yang bisa berubah vs. kekal.

Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...
Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...
Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...