내부 속성 사용하기
이번 연습 문제에서는 2장에서 다뤘던 BetterDate 클래스로 돌아가 보겠습니다.
날짜의 유효성을 확인하는 메서드를 추가하려고 하지만, 이를 BetterDate의 퍼블릭 인터페이스에는 포함시키고 싶지 않습니다.
스크립트 창에 BetterDate 클래스가 제공되어 있습니다.
이 연습은 강의의 일부입니다
Python의 객체 지향 프로그래밍
연습 안내
- 한 달의 최대 일수를 저장하는 클래스 속성
_MAX_DAYS를 추가하세요. 값은31입니다. - 1년의 최대 월수를 저장하는 또 다른 클래스 속성을 추가하세요. 값은
12입니다. 이 속성이 내부 속성임을 나타내는 적절한 네이밍 관례를 사용하세요. day와month속성이 각각의 최대값 이하일 때True, 그렇지 않으면False를 반환하는_is_valid()메서드를 추가하세요. 클래스 속성은 반드시 이름으로 참조해야 합니다!
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Add class attributes for max number of days and months
class BetterDate:
____
def __init__(self, year, month, day):
self.year, self.month, self.day = year, month, day
@classmethod
def from_str(cls, datestr):
year, month, day = map(int, datestr.split("-"))
return cls(year, month, day)
# Add _is_valid() checking day and month values
____
bd1 = BetterDate(2020, 4, 30)
print(bd1._is_valid())
bd2 = BetterDate(2020, 6, 45)
print(bd2._is_valid())