객체 속성을 관리하는 게터(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):
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
클래스는 _name
이라는 프라이빗 변수를 가지고 있으며, get_name()
과 set_name()
메소드를 통해 이 변수에 접근합니다.
set_name()
메소드는 값의 유효성을 검사하여 문자열이 아닌 경우 오류를 발생시킵니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!