짧은하루

python 데코레이터 @property 본문

Language/python

python 데코레이터 @property

짧은하루 2021. 9. 13. 19:32

python에서 @property를 사용하면 getter, setter를 간단하게 구현할 수 있습니다.

클래스에서 속성을 불러오는 메소드를 getter, 속성을 설정하는 메소드를 setter라고 부릅니다.

getter 메소드와 setter 메소드

class Person:
    def __init__(self):
        self.__tall = 155
 
    def get_tall(self):  # getter
        return self.__tall
    
    def set_tall(self, value):  # setter
        self.__tall = value
 
yuri = Person()
yuri.set_tall(160)
print(yuri.get_tall())

@property를 이용한 getter, setter

class Person:
    def __init__(self):
        self.__tall = 155
 	
    @property
    def tall(self):  # getter
        return self.__tall
        
    @tall.setter
    def tall(self, value):  # setter
        self.__tall = value
 
yuri = Person()
yuri.tall = 160
print(yuri.tall())

getter는 @property, setter는 @메소드명.setter로 구현합니다.

특히, 메소드 이름이 같다는 특징을 가지고 있는데 이로 인해 값을 설정할 때도 yuri.tall = 160,

값을 가져올 때도 yuri.tall로 가져올 수 있는 장점이 있습니다.

반응형
Comments