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

Biến công khai và riêng tư trong lớp Python là gì?

Biến công khai

Python không hạn chế chúng tôi truy cập bất kỳ biến nào hoặc gọi bất kỳ phương thức thành viên nào trong chương trình python.

Tất cả các biến và phương thức của python được công khai theo mặc định trong Python. Vì vậy, khi chúng ta muốn đặt bất kỳ biến hoặc phương thức nào ở chế độ công khai, chúng ta chỉ cần không làm gì cả. Hãy cho chúng tôi xem ví dụ bên dưới -

Ví dụ

class Mug:
    def __init__(self):
        self.color = None
        self.content = None

    def fill(self, beverage):
        self.content = beverage

    def empty(self):
        self.content = None

brownMug = Mug()
brownMug.color = "brown"
print brownMug.empty()
print brownMug.fill('tea')
print brownMug.color
print brownMug.content

Tất cả các biến và phương thức trong mã đều được công khai theo mặc định.

Khi chúng tôi khai báo thành viên dữ liệu của mình là riêng tư, nghĩa là không ai có thể truy cập nó từ bên ngoài lớp. Ở đây Python hỗ trợ một kỹ thuật được gọi là tên mangling. Tính năng này biến mọi tên thành viên có tiền tố là ít nhất hai dấu gạch dưới và được gắn với nhiều nhất một dấu gạch dưới thành _ . Vì vậy, để đặt thành viên của chúng tôi ở chế độ riêng tư, hãy xem ví dụ bên dưới -

Ví dụ

class Cup:
    def __init__(self, color):
         self.__content = None  # private variable
    def fill(self, beverage):
        self.__content = beverage
    def empty(self):
        self.__content = None

Cốc của chúng ta bây giờ chỉ có thể được rót và rót bằng cách sử dụng phương thức fill () và blank (). Lưu ý rằng nếu bạn cố gắng truy cập __content từ bên ngoài, bạn sẽ gặp lỗi. Nhưng bạn vẫn có thể vấp phải điều gì đó như thế này -

redCup = Cup("red")
redCup._Cup__content = "tea"