Aan de slagGa gratis aan de slag

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

Cursus bekijken

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, name en birth_year.
  • Maak binnen de methode de variabele age door het verschil te berekenen tussen het klasse-attribuut CURRENT_YEAR en birth_year.
  • Retourneer de attributen name en age van 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)
Code bewerken en uitvoeren