Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara Garis Bawah Tunggal dan Berganda dalam Python?

Apakah Perbezaan Antara Garis Bawah Tunggal dan Berganda dalam Python?

Linda Hamilton
Lepaskan: 2024-12-22 12:07:41
asal
955 orang telah melayarinya

What's the Difference Between Single and Double Underscores in Python?

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!"
Salin selepas log masuk

Apabila mengakses ahli ini di luar kelas, hanya _semipribadi akan didedahkan:

mc = MyClass()
print(mc._semiprivate)  # "Hello"
print(mc.superprivate)  # Attribute error
Salin selepas log masuk

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!

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