객체 속성을 관리하는 게터(Getter)와 세터(Setter)
클래스에서 게터(getter)
와 세터(setter)
객체의 속성에 간접적으로 접근하거나 값을 설정할 때 사용하는 메서드입니다.
게터
는 속성값을 읽을 때 사용하고, 세터
는 속성값을 설정하거나 수정할 때 사용됩니다.
파이썬에서는 게터와 세터를 직접 구현하거나, @property
데코레이터를 사용해 게터와 세터를 구현할 수 있습니다.
데코레이터 없이 구현하기
일반적으로 파이썬에서 게터와 세터를 직접 구현할 때는 다음과 같은 규칙을 따릅니다.
-
클래스의 속성을 반환하는
게터(getter)
는get_속성명
형식으로 이름을 지정합니다. -
클래스의 속성을 설정하거나 수정하는
세터(setter)
는set_속성명
형식으로 이름을 지정합니다.
게터와 세터 사용 예시
class Person: def __init__(self, name): # 프라이빗 변수 self.__name = name def get_name(self): return self.__name def set_name(self, value): # value 값이 문자열인지 확인 if isinstance(value, str): self.__name = value else: raise ValueError("이름은 문자열이어야 합니다.") person = Person("홍길동") print(person.get_name()) # '홍길동' 출력 person.set_name("박철수") # '박철수'로 이름 변경 print(person.get_name()) # '박철수' 출력 # 잘못된 값 설정 시도 (오류 발생) # person.set_name(123)
위 코드에서 Person
클래스의 get_name
메서드는 __name
속성을 반환하고, set_name
메서드는 __name
속성을 설정합니다.
set_name
메서드에서는 value
값이 문자열인지 확인하고, 문자열이 아닌 경우 ValueError
를 발생시킵니다.
이와 같이 게터와 세터를 직접 구현하면 속성에 대한 접근을 제어할 수 있으며, 속성값을 안전하게 설정할 수 있습니다.
다음 수업에서는 @property
데코레이터를 사용해 게터와 세터를 구현하는 방법을 알아보겠습니다.
Mission
0 / 1
다음 중 클래스의 속성값을 설정하거나 수정하는 메서드는 무엇일까요?
get_속성명
print_속성명
set_속성명
remove_속성명
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과