데코레이터로 게터와 세터 구현하기
데코레이터를 사용한 게터(getter)와 세터(setter) 메소드는 클래스의 속성을 안전하고 효율적으로 관리하는 데 사용됩니다.
게터와 세터 정의에 사용되는 데코레이터는 다음과 같습니다.
-
@property
: 게터 메소드를 정의합니다. 이 메소드는 클래스 속성을 반환합니다. -
@속성명.setter
: 세터 메소드를 정의합니다. 이 메소드는 클래스 속성을 설정 또는 변경합니다.
데코레이터를 사용한 게터와 세터 예시
class Person:
def __init__(self, name):
self._name = name
@property # 게터 메소드 정의
def name(self):
return self._name
@name.setter # 세터 메소드 정의
def name(self, value):
if isinstance(value, str):
self._name = value
else:
raise ValueError("이름은 문자열이어야 합니다.")
# 클래스 사용 예시
person = Person("홍길동")
print(person.name) # '홍길동' 출력
person.name = "박철수"
print(person.name) # '박철수' 출력
# 잘못된 값 설정 시도 (오류 발생)
# person.name = 123
이 예제에서 Person
클래스는 _name
속성을 가지고 있으며, @property
데코레이터를 사용한 name
게터와 @name.setter
데코레이터를 사용한 name
세터를 통해 이 속성에 접근합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!