Python Object-Oriented Programming: Person class with age calculation
2. Person Class with Age Calculation
Write a Python program to create a person class. Include attributes like name, country and date of birth. Implement a method to determine the person's age.
Sample Solution:
Python Code:
# Import the date class from the datetime module to work with dates
from datetime import date
# Define a class called Person to represent a person with a name, country, and date of birth
class Person:
# Initialize the Person object with a name, country, and date of birth
def __init__(self, name, country, date_of_birth):
self.name = name
self.country = country
self.date_of_birth = date_of_birth
# Calculate the age of the person based on their date of birth
def calculate_age(self):
today = date.today()
age = today.year - self.date_of_birth.year
if today < date(today.year, self.date_of_birth.month, self.date_of_birth.day):
age -= 1
return age
# Example usage
# Create three Person objects with different attributes
person1 = Person("Ferdi Odilia", "France", date(1962, 7, 12))
person2 = Person("Shweta Maddox", "Canada", date(1982, 10, 20))
person3 = Person("Elizaveta Tilman", "USA", date(2000, 1, 1))
# Access and print the attributes and calculated age for each person
print("Person 1:")
print("Name:", person1.name)
print("Country:", person1.country)
print("Date of Birth:", person1.date_of birth)
print("Age:", person1.calculate_age())
print("\nPerson 2:")
print("Name:", person2.name)
print("Country:", person2.country)
print("Date of Birth:", person2.date_of birth)
print("Age:", person2.calculate_age())
print("\nPerson 3:")
print("Name:", person3.name)
print("Country:", person3.country)
print("Date of Birth:", person3.date_of birth)
print("Age:", person3.calculate_age())
Sample Output:
Person 1: Name: Ferdi Odilia Country: France Date of Birth: 1962-07-12 Age: 60 Person 2: Name: Shweta Maddox Country: Canada Date of Birth: 1982-10-20 Age: 40 Person 3: Name: Elizaveta Tilman Country: USA Date of Birth: 2000-01-01 Age: 23
Explanation:
In the above exercise, we define a class called Person with an init method that initializes the attributes name, country, and date_of_birth.
The calculate_age method uses the date module from the datetime library to determine a person's age. This is based on their current date and their birth date. It calculates the difference between the current year and the birth year.
In the example usage section, we create three instances of the Person class, person1, person2 and person3, with different attribute values. Next, we access and print each person's attributes using dot notation (person.attribute_name), and determine their ages using calculate_age.
Flowchart:

For more Practice: Solve these Related Problems:
- Write a Python class that accepts a person's name, country, and date of birth, and computes the age using the datetime module.
- Write a Python class that includes methods to validate the date of birth format and raise an error for invalid inputs.
- Write a Python class that overloads the __str__ method to display a person's details along with their calculated age.
- Write a Python class that provides a static method for age calculation and use it to compare ages of multiple person instances.
Python Code Editor:
Previous: Circle class with area and perimeter calculation.
Next: Calculator class for basic arithmetic.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics