개발/Python
Python @Property
NOCKNOCK
2023. 10. 11. 12:18
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는 함수다.