Kom igångKom igång gratis

Lägga till en alternativ konstruktor

Klassmetoder är ett utmärkt sätt att erbjuda ett alternativt sätt att skapa ett objekt från en klass – till exempel från en fil eller genom att ta emot annan information och utföra en beräkning under konstruktionen för att returnera de nödvändiga attributen.

I den här övningen arbetar du med klassen Person. Konstruktorn förväntar sig ett namn och en ålder vid initialisering. Du ska lägga till en klassmetod som möjliggör initialisering via namn och födelseår, där metoden sedan beräknar åldern utifrån födelseåret.

Den här övningen är en del av kursen

Introduktion till objektorienterad programmering i Python

Visa kurs

Övningsinstruktioner

  • Lägg till en klassmetoddekorator.
  • Definiera klassmetoden from_birth_year(), som tar tre argument: det konventionella nyckelordet som används som ett särskilt argument för att referera till klassen, name och birth_year.
  • Skapa variabeln age inuti metoden genom att beräkna skillnaden mellan klassattributet CURRENT_YEAR och birth_year.
  • Returnera klassens attribut name och age.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod