공개 변수
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"