คำนำหน้าขีดล่างคู่
ใน Python เราใช้เครื่องหมายขีดล่างคู่ นั่นคือ __ ก่อนชื่อแอตทริบิวต์ และแอตทริบิวต์เหล่านั้นจะไม่สามารถเข้าถึงได้โดยตรง/ไม่ปรากฏภายนอก ขีดล่างสองครั้งทำให้ชื่อแอตทริบิวต์เสียหาย อย่างไรก็ตาม ตัวแปรนั้นยังคงสามารถเข้าถึงได้โดยใช้ไวยากรณ์ที่ซับซ้อน แต่โดยทั่วไปไม่ควรทำเช่นนั้น ขีดล่างคู่ใช้สำหรับตัวแปรส่วนตัวโดยสมบูรณ์
ตามเอกสารของ Python −
หากคลาสของคุณตั้งใจให้เป็นคลาสย่อย และคุณมีแอตทริบิวต์ที่คุณไม่ต้องการให้คลาสย่อยใช้ ให้พิจารณาตั้งชื่อคลาสด้วยขีดล่างคู่หน้าและไม่มีขีดล่างต่อท้าย สิ่งนี้จะเรียกใช้อัลกอริทึมการจัดการชื่อของ Python โดยที่ชื่อของคลาสจะถูกรวมเข้ากับชื่อแอตทริบิวต์ วิธีนี้ช่วยหลีกเลี่ยงการชนกันของชื่อแอตทริบิวต์หากคลาสย่อยมีแอตทริบิวต์ที่มีชื่อเดียวกันโดยไม่ได้ตั้งใจ
ตัวอย่าง
รหัสด้านล่างแสดงการใช้ขีดล่างคู่
class MyClass: __hiddenVar = 0 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject.__hiddenVar)
ผลลัพธ์
3 Traceback (most recent call last): 11 File "C:/Users/TutorialsPoint1/.PyCharmCE2017.2/config/scratches/scratch_1.py", line 12, in <module> print (myObject.__hiddenVar) AttributeError: MyClass instance has no attribute '__hiddenVar'
ในโปรแกรมด้านบนนี้ เราพยายามเข้าถึงตัวแปรที่ซ่อนอยู่ภายนอกคลาสโดยใช้อ็อบเจกต์ และมันทำให้เกิดข้อยกเว้น