Aan de slagGa gratis aan de slag

Een BetterDate-klasse bouwen

Je ontwikkelt een timeseries-pakket en wilt je eigen klasse voor datums definiëren, BetterDate.

De attributen van de klasse zijn year, month en day. Je wilt een constructor die BetterDate-objecten maakt op basis van waarden voor jaar, maand en dag, maar je wilt ook BetterDate-objecten kunnen maken uit strings, zoals 2021-04-30.

Deze oefening maakt deel uit van de cursus

Introductie tot objectgeoriënteerd programmeren in Python

Cursus bekijken

Oefeninstructies

  • Definieer de classmethode from_str(), met het speciale verplichte argument en nog een argument datestr.
  • Split datestr op koppeltekens "-" en sla het resultaat op in de variabele parts.
  • Retourneer year, month en day, in die volgorde, met het trefwoord dat ook __init__() aanroept.
  • Maak de variabele xmas met de .from_str()-methode van de klasse, met de string "2024-12-25".

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

class BetterDate:
  def __init__(self, year, month, day):
    self.year, self.month, self.day = year, month, day
    
  # Define a class method from_str
  ____
  ____
    # Split the string at "-"
    parts = datestr.____("____")
    year, month, day = int(parts[0]), int(parts[1]), int(parts[2])
    # Return the class instance
    ____ ____(____, ____, ____)

# Create the xmas object      
xmas = ____.____("____")   
print(xmas.year)
print(xmas.month)
print(xmas.day)
Code bewerken en uitvoeren