데코레이터로 게터와 세터 구현하기
파이썬에서는 데코레이터(Decorators)
를 사용하여 게터
와 세터
를 더 간결하게 구현할 수 있습니다.
프로그래밍에서 데코레이터는 함함수나 메서드의 기능을 확장하거나 수정하며, 파이썬에서는 @
기호를 사용하여 데코레이터를 적용합니다.
게터와 세터 정의에 사용되는 데코레이터는 다음과 같습니다.
-
@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 # # ValueError: 이름은 문자열이어야 합니다.
위 코드에서 __name
은 Person
클래스의 프라이빗 변수입니다.
@property
데코레이터는 name
메서드를 게터로 정의하며, @name.setter
데코레이터는 name
메서드를 세터로 정의합니다.
이렇게 데코레이터를 사용하면 게터와 세터를 더 간결하게 구현할 수 있습니다.
Mission
0 / 1
@property
데코레이터는 세터(setter) 메서드를 정의한다.
O
X
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과