Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Ẩn dữ liệu (Data Hiding) trong Python

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, in 
    print 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