본문으로 건너뛰기
실습하기

데코레이터로 게터와 세터 구현하기

데코레이터를 사용한 게터(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 강의를 등록해 주세요!