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

Ẩn dữ liệu trong Python

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