Mengapa Pembolehubah Python Berbeza daripada Pembolehubah Rujukan C?

Susan Sarandon
Lepaskan: 2024-10-21 17:22:03
asal
660 orang telah melayarinya

Why are Python Variables Different from C   Reference Variables?

Pembolehubah Rujukan Python

Dalam Python, memberikan nilai kepada pembolehubah mencipta rujukan kepada nilai tersebut. Walau bagaimanapun, tidak seperti dalam bahasa seperti C , pembolehubah Python tidak memegang nilai sebenar itu sendiri. Sebaliknya, ia merujuk kepada objek yang disimpan di tempat lain dalam ingatan.

Masalah Ketidakbolehubah

Pertimbangkan kod Python berikut:

<code class="python">y = 7
x = y
x = 8</code>
Salin selepas log masuk

Selepas melaksanakan kod ini, y akan kekal 7, manakala x akan menjadi 8. Ini kerana x dan y adalah rujukan kepada objek yang berbeza. Apabila x diberikan nilai baharu, ia tidak lagi merujuk kepada objek yang sama seperti y.

Pembolehubah Rujukan C lwn Rujukan Python

Dalam C , pembolehubah rujukan menyediakan alternatif untuk menghantar pembolehubah mengikut nilai. Pembolehubah rujukan ialah alias untuk pembolehubah sedia ada, bermakna sebarang perubahan yang dibuat kepada pembolehubah yang dirujuk juga ditunjukkan dalam pembolehubah rujukan.

Dalam contoh C yang disediakan:

<code class="cpp">int y = 8;
int &x = y;
x = 9;</code>
Salin selepas log masuk

y dan x ialah kedua-dua rujukan kepada objek yang sama. Oleh itu, memberikan nilai baharu kepada x turut mengubah nilai y.

Keterbatasan Python

Malangnya, Python tidak mempunyai cara terbina dalam untuk mencipta rujukan sebenar seperti C . Percubaan untuk mencipta rujukan dengan memberikan pembolehubah kepada pembolehubah lain, seperti yang ditunjukkan dalam kod yang disediakan, menghasilkan rujukan berasingan kepada objek yang berbeza.

Penyelesaian

Untuk meniru tingkah laku rujukan C dalam Python, seseorang boleh membuat kelas tersuai yang berfungsi sebagai rujukan kepada nilai yang dikehendaki. Contohnya:

<code class="python">class Reference:
    def __init__(self, val):
        self.value = val

    def get(self):
        return self.value

    def set(self, new_value):
        self.value = new_value

# Usage:
ref = Reference(7)
x = ref.get()  # x = 7
ref.set(8)  # Both x and ref.get() will now be 8</code>
Salin selepas log masuk

Walau bagaimanapun, kaedah ini adalah penyelesaian dan bukannya pelaksanaan sebenar rujukan Python. Ia masih memerlukan penggunaan eksplisit kaedah get() dan set() untuk mengubah suai nilai yang dirujuk.

Atas ialah kandungan terperinci Mengapa Pembolehubah Python Berbeza daripada Pembolehubah Rujukan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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