파이썬(Python)

python의 @property 데코레이터소개

leebaro 2021. 10. 22.
728x90

python의 클래스에서 getter, setter를 사용할 수 있도록 도와주는 역할을 합니다.

 

class Person:
    def __init__(self, first_name, last_name, age):
        self.first_name = first_name
        self.last_name = last_name
        self.__age = age

    @property
    def age(self):
        return self.__age

    @age.setter
    def age(self, age):
        if age < 0:
            raise ValueError("Invalid age")
        self.__age = age
        
        
        
# getter, setter 테스트        
person = Person()
print(person.age)
person.age = 100
print(person.age)

변수명 앞에 __ 가 앞에 있으면 private, _ 는 protected를 의미합니다. 이중 "__"가 붙어 있으면 해당 변수를 get과 set을 할 수 없습니다.

 

 

참고

https://nowonbun.tistory.com/660

https://www.daleseo.com/python-property/

https://hamait.tistory.com/827

728x90