반응형
자바 공부를 하신 분이라면 클래스 변수의 게터/세터 메소드 사용에 친숙할 것 같은데요,
파이썬은 더 직관적인 방법으로 게터/세터 사용을 지원합니다.
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
반응형