Các thuộc tính của đối tượng có thể hiển thị hoặc không hiển thị bên ngoài định nghĩa lớp. Bạn cần đặt tên thuộc tính với tiền tố hai dấu gạch dưới (__), và những thuộc tính đó sẽ không trực tiếp nhìn thấy được bởi bên ngoài.
Ví dụ
#!/usr/bin/python
class JustCounter:
__secretCount = 0
def count(self):
self.__secretCount += 1
print self.__secretCount
counter = JustCounter()
counter.count()
counter.count()
print counter.__secretCount
Kết quả
Khi mã trên được thực thi, nó cho kết quả sau:
1 2 Traceback (most recent call last): File "test.py", line 12, inprint counter.__secretCount AttributeError: JustCounter instance has no attribute '__secretCount'
Python bảo vệ các thành viên này bằng cách thay đổi tên nội bộ để bao gồm tên lớp. Bạn có thể truy cập các thuộc tính đó như object._className__attrName. Nếu bạn thay đổi dòng cuối như sau, nó sẽ hoạt động:
......................... print counter._JustCounter__secretCount
Khi mã trên được thực thi, nó cho kết quả sau:
1 2 2