Interne Attribute verwenden
In dieser Übung kehrst du zu der Klasse BetterDate
aus Kapitel 2 zurück.
Du möchtest eine Methode hinzufügen, die die Gültigkeit des Datums prüft, aber du willst sie nicht in die öffentliche Schnittstelle von BetterDate
einbinden.
Die Klasse BetterDate
ist im Skriptfenster verfügbar.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Anleitung zur Übung
- Füge ein Klassenattribut
_MAX_DAYS
hinzu, das die maximale Anzahl von Tagen in einem Monat speichert -31
. - Füge ein weiteres Klassenattribut hinzu, das die maximale Anzahl der Monate in einem Jahr speichert -
12
. Benutze die entsprechende Namenskonvention, um anzugeben, dass es sich um ein internes Attribut handelt. - Füge eine Methode
_is_valid()
hinzu, dieTrue
zurückgibt, wenn die Attributeday
undmonth
kleiner oder gleich den entsprechenden Maximalwerten sind, und ansonstenFalse
. Achte darauf, dass du die Klassenattribute beim Namen nennst!
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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())