LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

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