Python

Boleh berubah vs. Objek Tidak Berubah di Python

Boleh berubah vs. Objek Tidak Berubah di Python

Python dikatakan sebagai bahasa yang paling menakjubkan kerana banyak individu memilihnya sebagai bahasa pertama mereka untuk pengaturcaraan kerana keanggunan dan kesederhanaannya. Ucapan terima kasih kepada komuniti luasnya, kelebihan pakej, dan sintaksis yang konsisten, profesional berpengalaman juga menggunakan Python. Walaupun ada satu perkara yang kelihatan mengganggu kedua-dua pemula dan beberapa pemaju profesional- objek dari Python.

Boleh ubah vs. Tidak boleh berubah

Boleh diubah entiti boleh mengubah mereka keadaan atau bahan untuk menerangkan perbezaan, dan tidak berubah entiti tidak dapat mengubah keadaan atau kandungannya. Jadi apabila objek dibuat, yang istimewa ID objek diperuntukkan. Pada waktu runtime, jenis objek ditentukan dan tidak dapat dikemas kini kemudian. Bentuk terbina dalam seperti pemboleh ubah int, float, bool, str, tuple, dan Unicode tidak berubah. Objek seperti senarai, set, susunan bait, dan kamus kategori terbina dalam boleh berubah.

Fahami ID dan Fungsi Jenis

Bersepadu ID() kaedah mengandungi id objek sebagai bilangan bulat. Bilangan bulat itu biasanya merujuk pada kedudukan penyimpanan objek. The 'adalah'operator mengaitkan identiti dua objek antara satu sama lain. Fungsi bersepadu, taip (), mengembalikan jenis objek. Bandingkan dua pemboleh ubahx'dan'y', mempunyai nilai yang sama, menggunakan operator kesetaraan'x == y', ia akan dikeluarkan Betul. Menggunakan fungsi id (), kami telah membandingkan alamat ingatan kedua-dua pemboleh ubah itu akan menghasilkan Salah kerana kedua-dua pemboleh ubah itu berbeza dan terletak di lokasi memori yang berbeza, walaupun nilai yang dikandungnya sama.

Buat pemboleh ubah lain 'z'yang menunjukkan entiti yang sama yang'x'mengarahkan ke, menggunakan pengendali tugasan'='. Menggunakan 'adalah'Kami telah mendapati bahawa mereka berdua, menunjukkan objek yang sama dan mempunyai alamat memori yang sama.

Jenis Pembolehubah Tidak Berubah

Mari kita lihat beberapa jenis pemboleh ubah yang tidak berubah.

Jenis Data Integer

Mari tentukan pemboleh ubah 'x'mempunyai nilai'10'. Terbina dalam kaedah id () digunakan untuk mengetahui lokasi 'x'dalam ingatan dan taip () digunakan untuk mengenal pasti jenisnya. Apabila kita cuba mengubah nilai 'x', ia berjaya diubah, walaupun alamat memori kembali berbeza. Ini kerana kita sebenarnya tidak mengubah nilai 'x', tetapi kami telah membuat objek lain dengan nama yang sama'x'dan berikan nilai yang berbeza. Kami telah mengikat nama 'x'ke nilai baru. Sekarang, setiap kali anda memanggil 'x'ia akan menghasilkan nilai baru.

Jenis Data Rentetan

Sama dengan jenis data rentetan, kita tidak dapat mengubah yang ada pemboleh ubah tapi kita mesti buat yang baru dengan nama yang sama. Di sini kita ada ditakrifkan pemboleh ubah rentetan 'x'dan mahu menambah'wke indeks sifarnya. Ia akan menghasilkan Taip Kesalahan, menunjukkan bahawa objek rentetan tidak menyokong kemas kini.

Jenis Data Tuple

Lihat sekilas jenis tuple pemboleh ubah, kami telah menentukan a tupel dengan 4 nilai. Kami telah menggunakan fungsi id () untuk mengeluarkan alamatnya. Apabila kita mahu menukar nilainya di 0 indeks, ia memberikan Taip Kesalahan tuple itu tidak menyokong penugasan item atau kemas kini.

Sebaliknya, anda boleh kemas kini keseluruhan tuple dengan menentukannya dari calar. Sekarang, setiap kali anda menyemaknya, anda akan mendapat nilai baru dan alamat baru.

Jenis Data Terapung

Kami mempunyai pemboleh ubah jenis apungan 'x'. Menggunakan fungsi id (), kita mesti mencari alamatnya. Apabila kita mahu menukar nilainya di indeks 1, ia memberikan Taip Kesalahan float itu tidak menyokong pengubahsuaian item.

Sebaliknya, kami telah mengemas kini terapung dengan mendefinisikannya lagi. Sekarang, setiap kali kita menyebutnya, kita akan menemui nilai baru dan alamat baru.

Jenis Pembolehubah Boleh Ubah

Sekarang kita akan melihat beberapa jenis pemboleh ubah yang boleh berubah.

Senaraikan Jenis Data

Kami telah menentukan a senarai dinamakan 'x'dan tambahkan beberapa nilai padanya. Semasa lari, ia akan memaparkan nilai senarai. Bila kamu kemas kini senarai dengan memberikan nilai baru kepada indeks 0 dan 2, ia akan berjaya melakukannya.

Contoh yang dinyatakan di atas adalah contoh pengubahsuaian yang ringkas dan asas. Untuk memeriksa kebolehubahan ke tahap yang berbeza, mari kita lihat contoh yang sama dengan sedikit perubahan. Kami telah mencipta nama baru 'y'dan mengikatnya ke objek senarai yang sama. Semasa kami memeriksa sama ada 'x' adalah sama seperti 'y', ia kembali Benar. Sebaliknya, kedua-duanya 'x'dan'y' mempunyai sama ingatan alamat.

Sekarang tambahkan nilai baru ke a senarai nama 'x' dan periksa output yang dikemas kini.

Sekarang, apabila anda menyemak senarai nama 'y', ia akan memaparkan senarai yang sama seperti yang dipaparkan untuk 'x'. Ini bermaksud, apabila kita mengemas kini senarai objek yang sama, yang mempunyai dua nama yang berbeza 'x' dan 'y'. Kedua-duanya sama dan berkongsi alamat memori yang sama walaupun selepas pengubahsuaian.

Jenis Data Kamus

Oleh kerana kamus adalah pemboleh ubah yang biasa digunakan dalam Python, mari kita lihat kebolehubahan kamus. Kami telah menentukan kamus bernama 'imlak'dengan tiga kunci dan nilainya. Apabila kami mencetaknya, ia akan memaparkan semua kandungannya. Anda boleh mencetak setiap nilai kamus secara berasingan, dan juga menggunakan nilainya kunci bukannya indeks.

Kami mahu ubah nilai tertentu dengan mengemas kini kunci 'Nama'. Ia akan menghasilkan kamus yang dikemas kini. Kekunci kamus tidak berubah.

Mari kita tentukan a senarai dan tupel secara berasingan. Pastikan bahawa tupel mesti mempunyai nilai jenis senarai di dalamnya dan senarai mempunyai a nilai jenis tuple di dalamnya akibatnya.

A tupel mempunyai senarai di atasnya 0 indeks jadi apabila anda menukar pada 0 indeks tupel, anda harus menyebutkan indeks senarai di mana anda mahu menukar. Perubahan berlaku kerana senarai itu tidak berubah.

Sebaliknya, pemboleh ubah senarai tidak dapat dikemas kini kerana mempunyai tupel pada 0 indeks, yang boleh berubah.

Kesimpulannya

Kami telah melihat variasi dalam Python antara berubah dan tidak berubah. Anda harus membuat pemikiran anda jelas bahawa segala sesuatu di Python disebut sebagai objek. Terutama, perbezaan antara objek yang boleh berubah vs. tidak berubah.

Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...