이 클래스의 인스턴스에서 full_name 속성에 접근하면, _first_name과 _last_name을 합친 문자열을 반환합니다. @property 데코레이터가 없다면, full_name() 메서드를 직접 호출해야 합니다.
2.2 속성 접근자의 값 설정
@property 데코레이터를 사용하면, 속성에 값을 할당할 때 setter 메서드를 사용할 수 있습니다. setter 메서드는 @property 데코레이터와 동일한 이름을 사용하며, @property 데코레이터의 이름 뒤에 .setter를 붙여 정의합니다. 이를 통해 속성에 대한 값을 설정할 때 추가적인 검증을 수행할 수 있습니다.
class Person:
def __init__(self, name):
self.name = name
self._age = 0
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if value < 0:
raise ValueError("나이는 음수일 수 없습니다.")
self._age = value
# 사용 예제
person = Person("홍길동")
# age 속성 설정
person.age = 25
print(f"{person.name}의 나이는 {person.age}세입니다.")
2.3 덕 타이핑 (Duck typing)
"오리처럼 걷고, 오리처럼 꽥꽥대면 그것은 오리다."는 덕 타이핑의 원리를 잘 나타내는 문장입니다.
Duck Typing - 'If it walks like a duck and it quacks like a duck, then it must be a duck’