Computer >> Máy Tính >  >> Lập trình >> Python

Tiền tố gạch dưới kép làm gì trong các biến Python?

Dấu gạch dưới kép tiền tố

Trong Python, chúng tôi sử dụng dấu gạch dưới kép, tức là, __ trước tên của thuộc tính và các thuộc tính đó sẽ không thể truy cập / hiển thị trực tiếp bên ngoài. Dấu gạch dưới kép đặt tên của thuộc tính. Tuy nhiên, biến đó vẫn có thể được truy cập bằng một số cú pháp phức tạp nhưng nói chung không phải là ý kiến ​​hay. Dấu gạch dưới kép được sử dụng cho các biến hoàn toàn riêng tư.

Theo tài liệu Python -

Nếu lớp của bạn dự định là lớp con và bạn có các thuộc tính mà bạn không muốn các lớp con sử dụng, hãy cân nhắc đặt tên chúng bằng dấu gạch dưới kép ở đầu và không có dấu gạch dưới ở cuối. Điều này gọi ra thuật toán xáo trộn tên của Python, trong đó tên của lớp được ghép vào tên thuộc tính. Điều này giúp tránh xung đột tên thuộc tính nếu các lớp con vô tình chứa các thuộc tính trùng tên.

Ví dụ

Đoạn mã dưới đây cho thấy việc sử dụng dấu gạch dưới kép.

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)

Đầu ra

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'

Trong chương trình trên, chúng tôi đã cố gắng truy cập biến ẩn bên ngoài lớp bằng cách sử dụng đối tượng và nó đã ném ra một ngoại lệ.