*사실 파이썬은 캡슐화를 지원하는 언어는 아님 ! (private x) 클래스 없어도 괜찮은 언어
*클래스에서 self 파라미터엔 아무것도 안넣어도되는거임
캡슐화
=인스턴스를 생성했을 때 일부 구현 내용에 대한 외부로부터의 직접적인 엑세스를 차단하는것입니다.
= 캡슐처럼 객체 내부를 숨겨 외부로부터의 엑세스를 차단하는 것
ways
- 맹글링 -> 완벽은 x
- _변수 -> 개발자들 사이의 약속
- @property 데코레이터 사용내부 보호하기 위해 데이터 접근 메서드를 따로 만들어 주는 것!
property ? = 어떤 처리를 해준 속성
@property라는 키워드를 이용해서 클래스 변수를 속성으로 선언하고 하나의 메소드를 통해서 쉽게 get / set 할 수 있습니다
*메서드를 통해서 값을 가져오는 것 =getter / 값을 설정하는 것 =setter
프로퍼티를 사용하여 세터와 게터를 만들게 되면 접근시 저절로 그 게터, 세터를 사용하게 됨 + 설정한 메소드 이름으로 접근 가능
더 간단하게 접근 가능 !!
ex
__age 라는 attribute에 대해서 할 때
@property
def age(self) :
return self.__age
-> 게터 !!
@age.setter
def age(self, age):
self.__age=age
->세터 !!
-> 클래스.age로 쉽게 접근 가능, 저절로 게터 세터 사용됨