Get startedGet started for free

Adding an alternative constructor

Class methods are a great way of allowing an alternative way to create an object from a class, such as by a file or by accepting different information and performing a task during the construction to return the required attributes.

In this exercise, you'll work with the Person class. The constructor expects a name and age during initialization. You will add a class method that allows initialization by providing name and birth year, where the method will then calculate age from the birth year.

This exercise is part of the course

Introduction to Object-Oriented Programming in Python

View Course

Exercise instructions

  • Add a class method decorator.
  • Define the from_birth_year() class method, which accepts three arguments: the conventional word used as a special argument referring to the class, name, and birth_year.
  • Within the method, create the age variable by calculating the difference between the CURRENT_YEAR class attribute and birth_year.
  • Return the name and age attributes of the class.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

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)
Edit and Run Code