Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Garis Garis Tunggal dan Berganda Mempengaruhi Keterlihatan Pembolehubah dan Kaedah dalam Python?

Bagaimanakah Garis Garis Tunggal dan Berganda Mempengaruhi Keterlihatan Pembolehubah dan Kaedah dalam Python?

Patricia Arquette
Lepaskan: 2024-12-22 08:19:09
asal
800 orang telah melayarinya

How Do Single and Double Underscores Affect Variable and Method Visibility in Python?

Menyatakan Garis Bawah: Memahami Garis Bawah Tunggal dan Berganda dalam Python

Dalam Python, kehadiran satu atau dua garis bawah utama sebelum pengecam boleh mengubah makna dan keterlihatannya dalam kelas atau modul.

Garis Tunggal: Dalaman Penunjuk Penggunaan

garis bawah utama menandakan bahawa atribut atau kaedah bertujuan untuk kegunaan dalaman dalam kelas semasa. Walau bagaimanapun, ini hanyalah konvensyen; privasi tidak dikuatkuasakan. Selain itu, garis bawah tunggal terkemuka dalam fungsi modul menunjukkan bahawa ia tidak seharusnya diimport oleh modul luaran.

Garis Berganda: Name Mangling

Dua garis bawah utama menandakan nama yang musnah. Pengecam ini diubah secara dalaman dengan ClassName yang didahulukan, dengan ClassName ialah nama kelas semasa dengan garis bawah terkemuka dialih keluar. Mekanisme ini membenarkan takrif contoh kelas-peribadi dan pembolehubah kelas dan menyediakan beberapa perlindungan terhadap akses luaran. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pencabulan nama tidak menjamin privasi mutlak, kerana individu yang ditentukan masih boleh mengakses pembolehubah peribadi.

Contoh:

Pertimbangkan kelas berikut:

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"
Salin selepas log masuk
  • __superprivate ialah pembolehubah yang benar-benar peribadi, boleh diakses hanya dalam contoh MyClass dan tidak boleh diakses terus dari luar.
  • _semiprivate secara konvensional adalah peribadi tetapi boleh diakses terus.

Seperti yang ditunjukkan dalam contoh output, mengakses __superprivate secara langsung menghasilkan AttributeError, manakala _semiprivate boleh boleh diakses.

Atribut __dict__ mendedahkan kewujudan kedua-duanya __superprivate dan _semiprivate sebagai hancur, mengesahkan mekanisme pemusnahan nama.

Atas ialah kandungan terperinci Bagaimanakah Garis Garis Tunggal dan Berganda Mempengaruhi Keterlihatan Pembolehubah dan Kaedah dalam Python?. 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