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