Menyelidiki Garis Bawah Tunggal dan Berganda Python
Penggunaan garis bawah utama oleh Python sebelum nama objek menyampaikan makna dan tingkah laku tertentu.
Skor Bawah Tunggal: "Penggunaan Dalaman" Penunjuk
Satu garis bawah menunjukkan bahawa atribut atau kaedah bertujuan untuk digunakan dalam kelasnya sendiri. Ini adalah konvensyen, bukan peraturan yang dikuatkuasakan, untuk menghalang akses luar. Selain itu, apabila garis bawah tunggal mendahului nama fungsi dalam modul, ini menunjukkan bahawa ia tidak sepatutnya diimport dari luar modul.
Garis Garis Berganda: Name Mangling
garis bawah berganda trigger name mangling, proses di mana pengecam menjadi awalan dengan nama kelas dengan garis bawah terkemuka dialih keluar. Ini dilakukan untuk ahli kelas "peribadi" untuk mengelakkan konflik dengan ahli kelas terbitan atau kod luaran. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pengguna yang ditentukan masih boleh mengakses pembolehubah ini.
Contoh:
Dalam contoh berikut, __superprivate bertujuan untuk tidak boleh diakses di luar kelas, manakala _semiprivate mengikut konvensyen untuk kegunaan dalaman:
class MyClass: def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
Apabila mengakses ahli ini di luar kelas, hanya _semipribadi akan didedahkan:
mc = MyClass() print(mc._semiprivate) # "Hello" print(mc.superprivate) # Attribute error
Oleh itu, garis bawah tunggal menunjukkan penggunaan dalaman yang dimaksudkan, manakala garis bawah berganda melindungi ahli daripada akses langsung melalui nama yang merosakkan, menyediakan lapisan privasi tetapi bukan keselamatan mutlak.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Garis Bawah Tunggal dan Berganda dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!