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
'개발 > Python' 카테고리의 다른 글
Python - 내가 만든 모듈, 다른 사람들이 사용하도록 패키징하기 (0) | 2024.03.15 |
---|---|
Python 정적 메소드(@staticmethod) (0) | 2024.03.14 |
파이썬 EXE 파일 만들기 (0) | 2023.12.31 |
파이썬 가상환경 설정법 (0) | 2023.12.16 |
파이썬에서 Self란 뭘까? (0) | 2023.09.06 |