본문 바로가기
개발/Python

Python @Property

by 보안매크로 2023. 10. 11.
728x90
class Citizen:

    def __init__(self, age_value):
        self._age = age_value

    @property
    def age(self):
        print("나이를 리턴합니다.")
        return self._age

    @age.setter
    def age(self, age_value):
        print("나이를 새로 설정합니다.")
        self._age = age_value

1. @property 가 붙은 age 메소드(A)가 있으면 Citizen 클래스의 인스턴스.age , 이 코드가 실행될 때 A가 실행되고,

2. @age.setter 가 붙은 age 메소드(B)가 있으면 Citizen 클래스의 인스턴스.age = 어떤 숫자값 이 코드가 실행될 때 B가 실행된다.

즉 @property를 쓰면, 메서드를 변수처럼 쓸 수 있고, @???.setter를 쓰면 값을 할당할 때 쓰기 좋다. _age가 나이를 나타내는 실제 인스턴스 변수이고, age는 함수다.

728x90