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

Apakah Perbezaan Antara Garis Bawah Tunggal dan Berganda dalam Nama Objek Python?

DDD
Lepaskan: 2024-12-24 08:32:14
asal
603 orang telah melayarinya

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

Menyahmistikan Garis bawah dalam Nama Objek Python

Dalam Python, konvensyen penamaan memainkan peranan penting dalam penamaan objek. Garis bawah tunggal dan berganda sebelum nama objek mengandungi makna khusus yang membimbing pengaturcara memahami skop dan kebolehcapaian objek tersebut.

Skor Garis Tunggal (_name)

Satu garis bawah utama dalam nama objek menunjukkan bahawa ia bertujuan untuk kegunaan dalaman dalam kelas. Ini adalah satu cara untuk menunjukkan bahawa objek itu tidak bertujuan untuk diakses atau diubah suai dari luar kelas. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa konvensyen ini adalah garis panduan dan bukannya sekatan yang dikuatkuasakan.

garis bawah tunggal juga digunakan untuk menandakan modul atau fungsi yang tidak sepatutnya diimport dari tempat lain. Dengan memberi awalan nama objek dengan garis bawah, ia menandakan kepada pengaturcara lain bahawa ia harus dianggap sebagai elemen peribadi.

Double Underscore (__name__)

Garis bawah utama berganda digunakan untuk mencampurkan nama, teknik yang mengubah suai nama objek di belakang adegan. Transformasi ini menggantikan nama objek dengan versi diubah suai yang merangkumi nama kelas dan garis bawah.

Menurut dokumentasi Python, garis bawah berganda menunjukkan bahawa objek harus dianggap sebagai pembolehubah peribadi atau kaedah dalam kelas semasa. Walau bagaimanapun, adalah penting untuk memahami bahawa perpecahan nama tidak mutlak. Individu yang ditentukan masih boleh mengakses atau mengubah suai pembolehubah yang ditandakan sebagai peribadi.

Contoh

Mari kita pertimbangkan kelas Python berikut:

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"

mc = MyClass()
print(mc._semiprivate)  # Accessible
print(mc.__superprivate)  # Not accessible outside the class
Salin selepas log masuk

Dalam contoh ini, pembolehubah __superprivate ditandakan sebagai peribadi menggunakan garis bawah berganda, manakala _pembolehubah semiprivate menggunakan satu garis bawah. Pembolehubah __superprivate tidak boleh diakses di luar kelas, manakala pembolehubah _semiprivate boleh diakses tetapi harus dianggap dalaman kepada kelas.

Atas ialah kandungan terperinci Apakah Perbezaan Antara Garis Bawah Tunggal dan Berganda dalam Nama Objek 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan