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
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
, andbirth_year
. - Within the method, create the
age
variable by calculating the difference between theCURRENT_YEAR
class attribute andbirth_year
. - Return the
name
andage
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)