Interne Attribute verwenden
In dieser Übung kehrst du zur Klasse BetterDate aus Kapitel 2 zurück.
Du möchtest eine Methode hinzufügen, die die Gültigkeit des Datums prüft, aber sie soll nicht Teil der öffentlichen Schnittstelle von BetterDate sein.
Die Klasse BetterDate ist im Skriptbereich verfügbar.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Anleitung zur Übung
- Füge ein Klassenattribut
_MAX_DAYShinzu, das die maximale Anzahl an Tagen in einem Monat speichert –31. - Füge ein weiteres Klassenattribut hinzu, das die maximale Anzahl an Monaten in einem Jahr speichert –
12. Verwende die passende Namenskonvention, um anzuzeigen, dass es sich um ein internes Attribut handelt. - Füge eine Methode
_is_valid()hinzu, dieTruezurückgibt, wenn die Attributedayundmonthkleiner oder gleich den entsprechenden Maximalwerten sind, und sonstFalse. Achte darauf, die Klassenattribute mit ihren Namen zu referenzieren!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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())