LoslegenKostenlos loslegen

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

Kurs anzeigen

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, die True zurückgibt, wenn die Attribute day und month kleiner oder gleich den entsprechenden Maximalwerten sind, und ansonsten False. 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())
Code bearbeiten und ausführen