Een alternatieve constructor toevoegen
Classmethodes zijn een fijne manier om een alternatief te bieden om een object uit een klasse te maken, bijvoorbeeld vanuit een bestand of door andere informatie te accepteren en tijdens de constructie een taak uit te voeren om de benodigde attributen te retourneren.
In deze oefening werk je met de klasse Person. De constructor verwacht tijdens het initialiseren een naam en leeftijd. Je voegt een classmethode toe die initialisatie mogelijk maakt door een naam en geboortejaar op te geven, waarna de methode de leeftijd uit het geboortejaar berekent.
Deze oefening maakt deel uit van de cursus
Introductie tot objectgeoriënteerd programmeren in Python
Oefeninstructies
- Voeg een decorator voor een classmethode toe.
- Definieer de classmethode
from_birth_year(), die drie argumenten accepteert: het gebruikelijke woord dat als speciaal argument naar de klasse verwijst,nameenbirth_year. - Maak binnen de methode de variabele
agedoor het verschil te berekenen tussen het klasse-attribuutCURRENT_YEARenbirth_year. - Retourneer de attributen
nameenagevan de klasse.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
class Person:
CURRENT_YEAR = 2024
def __init__(self, name, age):
self.name = name
self.age = age
# Add a class method decorator
____
# Define the from_birth_year method
def ____(____, ____, ____):
# Create age
age = ____.____ - ____
# Return the name and age
return ____(____, ____)
bob = Person.from_birth_year("Bob", 1990)