본문 바로가기

python

python @property에 대해서

접근제어자

접근 제어자에는 public, private, protected가 있다.
python은 다른언어와 달리 접근 제어자가 없고, 작명법으로 접근을 제어할 수 있다.
사용법은 아래에 있다.

  • public -> 아무런 표시가 없다
  • private -> 두개의 밑줄(언더바)을 적용할 수 있다.
  • protected -> 한개의 밑줄(언더바)을 적용할 수 있다.

코드로 사용하면 이렇게 된다.

class Example:
    def __init__(self):
        pass

    def public(self):
        print("public")

    def _protected(self):
        print("protected")

    def __private(self):
        print("private")

get / set

다른 언어에서 private를 사용한 속성값을 가져올땐 get, set 메소드를 사용하여 가져올 수 있지만,
python에서는 아래와 같이 사용된다.

        def __init__(self): 
            self.__name = "john"

        @property
        def name(self):
            return self.__name

        @name.setter
        def name(self, name):
            self.__name = name

if __name__ == "__main__":  
  stu = Student()
  print(stu.name) # john

  stu.name = 'park'
  print(stu.name) # park

데코레이터의 사용으로 좀 더 직관적이고 간편하게 사용할 수 있다.
get의 역할은 property, set의 역할은 사용하는 함수의 이름뒤에 .setter를 붙여 사용할 수 있다.
property는 setter보다 윗줄에 사용해줘야한다는점도 기억해야한다.

'python' 카테고리의 다른 글

python 객체지향(OOP) 설계 원칙  (0) 2020.10.18
python 정적메소드  (0) 2020.10.18
python 개발환경 구축 pyenv-virtualenv install  (0) 2020.09.30
python 설치 및 환경 설정  (0) 2020.09.30
pycharm 설치 (mac)  (0) 2020.09.26