Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คำนำหน้าขีดล่างคู่ทำอะไรในตัวแปร Python


คำนำหน้าขีดล่างคู่

ใน 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'

ในโปรแกรมด้านบนนี้ เราพยายามเข้าถึงตัวแปรที่ซ่อนอยู่ภายนอกคลาสโดยใช้อ็อบเจกต์ และมันทำให้เกิดข้อยกเว้น