Rumah > pembangunan bahagian belakang > Tutorial Python > Adakah Pembolehubah Python Penunjuk atau Rujukan?

Adakah Pembolehubah Python Penunjuk atau Rujukan?

Mary-Kate Olsen
Lepaskan: 2024-12-05 05:20:09
asal
432 orang telah melayarinya

Are Python Variables Pointers or References?

Adakah Rujukan Pembolehubah Python?

Tanggapan bahawa "pembolehubah dalam Python ialah penunjuk" boleh mengelirukan. Untuk menjelaskan salah faham ini, mari kita periksa dua contoh kod:

Contoh 1:

i = 5
j = i
j = 3
print(i)
Salin selepas log masuk

Jika pembolehubah adalah penunjuk, kami menjangkakan outputnya ialah 3. Walau bagaimanapun , output sebenar ialah 5. Ini kerana pembolehubah Python tidak menyimpan nilai sebenar objek sebaliknya merujuk kepada ia.

Contoh 2:

i = [1,2,3]
j = i
i[0] = 5
print(j)
Salin selepas log masuk

Tidak seperti contoh pertama, output di sini ialah [5,2,3]. Kali ini, menukar elemen pertama senarai terikat kepada i juga mempengaruhi senarai terikat kepada j. Ini kerana kedua-dua i dan j merujuk objek senarai yang sama.

Apakah Pembolehubah Python Sebenarnya?

Untuk memahami pembolehubah Python dengan betul, kita mesti menganggapnya sebagai rujukan dan bukannya petunjuk. Apabila kita menetapkan nilai kepada pembolehubah, kita pada asasnya mengikat pembolehubah itu pada objek tertentu dalam ingatan.

Perbezaan utama antara rujukan dan penunjuk ialah rujukan tidak boleh ditetapkan semula untuk menunjuk ke objek lain. Sebaliknya, ia kekal terikat secara kekal pada objek asal.

Dalam contoh di atas, i dan j ialah rujukan kepada objek int(5) dan list([1,2,3]) asal, masing-masing. Menukar nilai i tidak menjejaskan j kerana kedua-duanya merujuk objek yang berbeza. Walau bagaimanapun, menukar nilai elemen dalam senarai memberi kesan kepada i dan j kerana kedua-duanya merujuk objek senarai yang sama.

Atas ialah kandungan terperinci Adakah Pembolehubah Python Penunjuk atau Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan