Các thuộc tính của một đối tượng có thể hiển thị hoặc có thể không hiển thị bên ngoài định nghĩa lớp. Bạn cần đặt tên cho các thuộc tính bằng tiền tố gạch dưới kép và những thuộc tính đó sau đó sẽ không hiển thị trực tiếp với người 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
Đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
1 2 Traceback (most recent call last): File "test.py", line 12, in <module> print counter.__secretCount AttributeError: JustCounter instance has no attribute '__secretCount'
Python bảo vệ các thành viên đó bằng cách thay đổi nội bộ tên để 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 thế dòng cuối cùng của mình như sau, thì dòng đó phù hợp với bạn -
......................... print counter._JustCounter__secretCount
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
1 2 2