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!"
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!