Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 클래스의 공개 및 비공개 변수는 무엇입니까?

<시간/>

공개 변수

Python은 Python 프로그램에서 변수에 액세스하거나 멤버 메서드를 호출하는 것을 제한하지 않습니다.

모든 python 변수와 메서드는 기본적으로 Python에서 공개됩니다. 따라서 변수나 메서드를 공개하고 싶을 때 아무 것도 하지 않습니다. 아래 예를 살펴보겠습니다 -

예시

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

코드의 모든 변수와 메서드는 기본적으로 공개되어 있습니다.

데이터 멤버를 private로 선언할 때 아무도 클래스 외부에서 액세스할 수 없어야 합니다. 여기에서 Python은 이름 맹글링이라는 기술을 지원합니다. 이 기능은 접두사가 두 개 이상이고 밑줄이 한 개 이하인 모든 구성원 이름을 _ 으로 바꿉니다. 따라서 회원을 비공개로 설정하려면 아래 예를 살펴보겠습니다. -

예시

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

이제 우리의 컵은 fill() 및 empty() 메서드를 사용하여 채우고 쏟을 수 있습니다. 외부에서 __content에 액세스하려고 하면 오류가 발생합니다. 하지만 여전히 다음과 같은 것을 발견할 수 있습니다. -

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