Memahami Pembolehubah Python: Rujukan lwn. Penunjuk
Lazimnya diandaikan bahawa pembolehubah dalam Python adalah penunjuk semata-mata. Walau bagaimanapun, pemahaman yang lebih mendalam mendedahkan bahawa ini tidak sepenuhnya tepat.
Pertimbangkan coretan kod berikut:
i = 5 j = i j = 3 print(i)
Berdasarkan andaian bahawa pembolehubah adalah penunjuk, seseorang mungkin menjangkakan outputnya adalah 3, dengan mengandaikan bahawa penunjuk yang disimpan dalam j telah ditetapkan semula. Walau bagaimanapun, output sebenar ialah 5.
Untuk menyelesaikan percanggahan ini, adalah penting untuk menyedari bahawa pembolehubah dalam Python bukanlah penunjuk dalam erti kata tradisional. Sebaliknya, ia berfungsi sebagai rujukan kepada objek dalam ingatan.
Rujukan dalam Python
Rujukan ialah lokasi memori yang menghala ke objek. Dalam kes jenis data primitif seperti integer (cth., i = 5), pembolehubah menyimpan nilai sebenar. Walau bagaimanapun, untuk objek boleh ubah seperti senarai (cth., i = [1,2,3]), pembolehubah menyimpan rujukan kepada objek dalam ingatan.
Tingkah Laku Berdasarkan Jenis Objek
Apabila pembolehubah baharu (cth., j) diberikan rujukan kepada pembolehubah sedia ada (cth., i), kedua-dua pembolehubah menunjuk ke objek asas yang sama. Perubahan yang dibuat melalui mana-mana pembolehubah dicerminkan dalam kedua-duanya.
Contoh dengan Senarai
Pertimbangkan coretan kod:
i = [1,2,3] j = i i[0] = 5 print(j)
Dalam kes ini, output ialah [5,2,3]. Ini menunjukkan bahawa apabila elemen senarai pada indeks 0 diubah suai melalui i, perubahan itu juga ditunjukkan dalam j kerana kedua-duanya merujuk kepada senarai yang sama.
Kesimpulan
Pembolehubah dalam Python berfungsi sebagai rujukan dan bukannya penunjuk. Mereka membenarkan berbilang pembolehubah untuk menunjuk ke objek yang sama, membolehkan perkongsian data dan penggunaan memori yang cekap. Memahami konsep ini adalah penting untuk pengaturcaraan yang berkesan dalam Python.
Atas ialah kandungan terperinci Pembolehubah Python: Rujukan atau Penunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!