기본 패턴
python
class User:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name설명
property는 메서드 호출 문법 없이도 계산된 값이나 검증된 값을 속성처럼 다루게 해 줍니다.- 읽기용 속성만 만들 수도 있고, setter를 붙여 값 대입 시 검증을 넣을 수도 있습니다.
- 외부 인터페이스는 단순하게 유지하면서 내부 표현은 바꿀 수 있다는 점이 장점입니다.
- 단순 공개 필드로 충분한 경우까지 무조건 property를 쓰는 것은 과할 수 있습니다.
짧은 예제
python
class User:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age빠른 정리
| 표현 | 의미 |
|---|---|
@property | getter 정의 |
@name.setter | setter 정의 |
| 속성처럼 접근 | obj.name 형태 유지 |
| 내부 검증 가능 | 값 읽기/쓰기 제어 |
공식 참고: Classes, Built-in Functions
주의할 점
속성 접근은 보통 "가볍다"는 기대를 줍니다. property 안에서 무거운 작업이나 네트워크 요청 같은 동작을 숨기면 사용자가 코드를 읽기 어렵습니다.