시작하기무료로 시작하기

내부 속성 사용하기

이번 연습 문제에서는 2장에서 다뤘던 BetterDate 클래스로 돌아가 보겠습니다.

날짜의 유효성을 확인하는 메서드를 추가하려고 하지만, 이를 BetterDate의 퍼블릭 인터페이스에는 포함시키고 싶지 않습니다.

스크립트 창에 BetterDate 클래스가 제공되어 있습니다.

이 연습은 강의의 일부입니다

Python의 객체 지향 프로그래밍

강의 보기

연습 안내

  • 한 달의 최대 일수를 저장하는 클래스 속성 _MAX_DAYS를 추가하세요. 값은 31입니다.
  • 1년의 최대 월수를 저장하는 또 다른 클래스 속성을 추가하세요. 값은 12입니다. 이 속성이 내부 속성임을 나타내는 적절한 네이밍 관례를 사용하세요.
  • daymonth 속성이 각각의 최대값 이하일 때 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())
코드 편집 및 실행