Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Python Mensimulasikan Gelagat Pas-demi-Rujukan?

Bagaimanakah Python Mensimulasikan Gelagat Pas-demi-Rujukan?

DDD
Lepaskan: 2025-01-03 06:35:39
asal
472 orang telah melayarinya

How Does Python Simulate Pass-by-Reference Behavior?

Melalui Pembolehubah melalui Rujukan dalam Python

Argumen Python diluluskan mengikut nilai, di mana fungsi yang dipanggil menerima salinan pembolehubah asal. Ini berbeza daripada panggilan demi rujukan, di mana fungsi menerima rujukan kepada pembolehubah asal dan boleh mengubah suainya secara langsung.

Mutable vs. Immutable Variable

Dalam Python, sesetengah jenis data boleh berubah (cth., senarai, kamus) manakala yang lain tidak boleh diubah (cth., rentetan). Apabila menghantar pembolehubah boleh ubah, fungsi boleh mengubah kandungannya, tetapi apabila menghantar pembolehubah tidak berubah, fungsi tidak boleh mengubah suainya.

Tingkah Laku Pass-by-Value dalam Python

Sebagai contoh, pertimbangkan kod berikut:

class PassByReference:
    def __init__(self):
        self.variable = 'Original'
        self.change(self.variable)
        print(self.variable)

    def change(self, var):
        var = 'Changed'
Salin selepas log masuk

Apabila contoh kelas ini dicipta, output adalah "Asal". Ini kerana parameter "var" dalam kaedah "ubah" ialah salinan atribut "pembolehubah" dan sebarang perubahan yang dibuat kepada "var" dalam kaedah tidak menjejaskan pembolehubah asal di luar kaedah.

Penyelesaian untuk Gelagat Rujukan Laluan

Walaupun Python tidak menyokong panggilan demi rujukan secara langsung, terdapat penyelesaian untuk disimulasikan tingkah laku ini.

Nilai Pulangan:

Fungsi boleh mengembalikan pembolehubah yang diubah suai, yang kemudiannya boleh diberikan kepada pembolehubah asal di luar fungsi.

Kelas atau Senarai Pembungkus:

Kelas atau senarai pembungkus boleh ubah boleh digunakan untuk memegang pembolehubah. Dengan menghantar pembungkus kepada fungsi, fungsi boleh mengubah suai pembolehubah yang dipegang dan perubahan akan ditunjukkan dalam pembungkus apabila ia dikembalikan.

Kesimpulan

Sementara Python tidak menyokong panggilan demi rujukan yang benar, penyelesaian yang disediakan membolehkan pembangun mensimulasikan tingkah laku ini untuk kedua-dua jenis data boleh ubah dan tidak boleh ubah, membolehkan lebih fleksibiliti dalam kod reka bentuk.

Atas ialah kandungan terperinci Bagaimanakah Python Mensimulasikan Gelagat Pas-demi-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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan