LoslegenKostenlos starten

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

<Kurs>Objektorientierte Programmierung in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Füge ein Klassenattribut _MAX_DAYS hinzu, 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, die True zurückgibt, wenn die Attribute day und month kleiner oder gleich den entsprechenden Maximalwerten sind, und sonst False. Achte darauf, die Klassenattribute mit ihren Namen zu referenzieren!

Interaktive praktische Ü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())
Code bearbeiten und ausführen