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

Cách ẩn dữ liệu hoạt động trong các lớp Python?

Ẩn dữ liệu

Trong Python, chúng tôi sử dụng dấu gạch dưới kép trước tên thuộc tính để làm cho chúng không thể truy cập được / riêng tư hoặc để ẩn chúng.

Đoạn mã sau cho biết cách ẩn biến __hiisedVar.

Ví dụ

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/~_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 vào 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ệ.

Chúng ta có thể truy cập giá trị của thuộc tính ẩn bằng cách sử dụng cú pháp đặc biệt như sau -

Ví dụ

class MyClass:
    __hiddenVar = 12
    def add(self, increment):
       self.__hiddenVar += increment
       print (self.__hiddenVar)
myObject = MyClass()
myObject.add(3)
myObject.add (8)
print (myObject._MyClass__hiddenVar)

Đầu ra

15
23
23

Các phương thức riêng có thể được truy cập từ bên ngoài lớp của chúng, nhưng không dễ dàng như trong các trường hợp bình thường. Không có gì trong Python thực sự là riêng tư; trong nội bộ, tên của các phương thức và thuộc tính riêng tư được đọc kỹ và không bị xáo trộn nhanh chóng khiến chúng không thể truy cập được bằng tên đã cho của chúng.