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
Oefeninstructies
- Definieer de classmethode
from_str(), met het speciale verplichte argument en nog een argumentdatestr. - Split
datestrop koppeltekens"-"en sla het resultaat op in de variabeleparts. - Retourneer
year,monthenday, in die volgorde, met het trefwoord dat ook__init__()aanroept. - Maak de variabele
xmasmet 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)