본문 바로가기

IT/파이썬 Python

파이썬의 게터/세터 사용법 (@property)

반응형

자바 공부를 하신 분이라면 클래스 변수의 게터/세터 메소드 사용에 친숙할 것 같은데요,

파이썬은 더 직관적인 방법으로 게터/세터 사용을 지원합니다.

 

property는 영어로 속성이라는 뜻인데, 파이썬에서는 @property라는 키워드를 이용해서 클래스 변수를 속성으로 선언하고 하나의 메소드를 통해서 쉽게 get / set 할 수 있습니다.

 

 

class Human:
    def __init__(self):
        self.__age = 0
        self.__gender = 'M'
    
    @property
    def age(self):
        return self.__age
    @age.setter
    def age(self, value):
        self.__age = value
    
    @property
    def gender(self):
        return self.__gender
    @gender.setter
    def gender(self, value):
        self.__gender = value 

 

위 코드를 보시면 getter / setter 메서드가 같은 이름으로 두 번 define되어 있는 것이 보이죠? (age / gender 각각 2 번씩) 

각 메서드 definition 위에 @property , @메서드이름.setter 라는 문구가 각각 getter / setter 임을 선언하는 의미를 가집니다.

실제로 이 코드를 실행해 보면, 파라메터 없이 = 를 이용하여 해당 객체의 나이 / 성별을 세팅할 수 있습니다. 

 

>>> michael = Human()

>>> michael.age

0

>>> michael.gender

'M'

>>> michael.age = 10

>>> michael.age

10

반응형