programmer-blog
[Python]비공개 속성,메서드에 대해서 본문
private attribute
private method
클래스 내부에서만 접근 할 수 있는 속성을 가르켜 비공개 메서드라고 한다.
속성 이름 앞에 __을 붙이면 비공개 속성이 된다.
class Person:
def __init__(self,name,wallet):
self.name = name
self.wallet = wallet
def money(self):
print(self.wallet)
bill = Person('bill','10000')
bill.money()
비공개 속성은 이렇게 클래스 내부 함수를 통해서만 접근 할 수 있다.
bill.__wallet # AttributeError: 'Person' object has no attribute '__wallet'
만약 밖에서 접근하려고 하면 에러 메세지가 뜬다. 밖에서는 __wallet 속성이 없는 것 처럼 작동한다.
비공개 메서드를 만드는 방법 비공개 속성을 만드는 방법과 같다. 함수이름 앞에 언더바(_)를 두개 입력하면 된다.
class Person:
def __init__(self,name,wallet):
self.name = name
self.wallet = wallet
def __name(self): #비공개 메서드. 클래스 내부에서만 접근 할 수 있다.
print(self.name)
def money(self):
self.__name()
print(self.wallet)
bill = Person('bill','10000')
bill.money()
비공개 메서드도 클래스 내부에서만 접근 할 수 있다.
bill.__name() #AttributeError: 'Person' object has no attribute '__name'
외부에서 접근하려고하면 비공개 속성과 마찬가지로 에러가 난다.
'Python' 카테고리의 다른 글
[Python]decorator(데코레이터) 란 무엇인가 (0) | 2020.05.24 |
---|---|
[python]*,** packing에 대해서 (0) | 2020.05.22 |
[Python]__init__과 self란 무엇인가 (0) | 2020.05.21 |
[Python]class,instance,method란 무엇인가. (0) | 2020.05.20 |