Bird
Raised Fist0
Pythonprogramming~20 mins

Creating objects in Python - Practice Exercises

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Object Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this Python code creating an object?
Consider this class and object creation code. What will be printed when running it?
Python
class Car:
    def __init__(self, brand, year):
        self.brand = brand
        self.year = year

my_car = Car('Toyota', 2020)
print(my_car.brand, my_car.year)
Abrand year
BCar object at memory address
CError: attribute not found
DToyota 2020
Attempts:
2 left
💡 Hint
Look at how the __init__ method assigns values to self.brand and self.year.
Predict Output
intermediate
2:00remaining
What is the output of this code creating multiple objects?
This code creates two objects from the Person class. What will it print?
Python
class Person:
    def __init__(self, name):
        self.name = name

p1 = Person('Alice')
p2 = Person('Bob')
print(p1.name, p2.name)
AError: name attribute missing
BBob Alice
CAlice Bob
DPerson Person
Attempts:
2 left
💡 Hint
Each object has its own name attribute set during creation.
🔧 Debug
advanced
2:00remaining
What error does this code raise when creating an object?
This code tries to create an object but has a mistake. What error will it raise?
Python
class Animal:
    def __init__(self, species):
        self.species = species

pet = Animal()
ATypeError: __init__() missing 1 required positional argument: 'species'
BAttributeError: 'Animal' object has no attribute 'species'
CNameError: name 'Animal' is not defined
DNo error, pet.species is None
Attempts:
2 left
💡 Hint
Check if the constructor requires any arguments and if they are provided.
Predict Output
advanced
2:00remaining
What is the output of this code using a method in an object?
This code defines a class with a method. What will it print when calling greet()?
Python
class Greeter:
    def __init__(self, name):
        self.name = name
    def greet(self):
        return f'Hello, {self.name}!'

g = Greeter('Sam')
print(g.greet())
Agreet
BHello, Sam!
CHello, name!
DError: greet() missing 1 required positional argument
Attempts:
2 left
💡 Hint
The greet method returns a greeting string using the object's name attribute.
🧠 Conceptual
expert
2:00remaining
How many objects are created after running this code?
Consider this code snippet. How many distinct objects are created in memory?
Python
class Box:
    def __init__(self, content):
        self.content = content

b1 = Box('apple')
b2 = Box('banana')
b3 = b1
b4 = Box('apple')
A3
B4
C2
D1
Attempts:
2 left
💡 Hint
Remember that assigning b3 = b1 does not create a new object.

Practice

(1/5)
1. What is the main purpose of the __init__ method in a Python class?
easy
A. To define a new class method
B. To delete the object from memory
C. To initialize the object's attributes when it is created
D. To print the object details

Solution

  1. Step 1: Understand the role of __init__

    The __init__ method is called automatically when a new object is created from a class.
  2. Step 2: Identify what __init__ does

    It sets up the initial state by assigning values to the object's attributes.
  3. Final Answer:

    To initialize the object's attributes when it is created -> Option C
  4. Quick Check:

    __init__ initializes object attributes [OK]
Hint: Remember: __init__ sets up new objects [OK]
Common Mistakes:
  • Thinking __init__ deletes objects
  • Confusing __init__ with printing methods
  • Believing __init__ defines new classes
2. Which of the following is the correct way to create an object of class Car in Python?
easy
A. car = new Car()
B. car = Car()
C. car = Car.create()
D. car = Car[]

Solution

  1. Step 1: Recall Python object creation syntax

    In Python, you create an object by calling the class name followed by parentheses.
  2. Step 2: Eliminate invalid syntaxes

    new Car() is Java/C++ style, invalid in Python. Car.create() assumes a non-existent method. Car[] is invalid. Only Car() works.
  3. Final Answer:

    car = Car() -> Option B
  4. Quick Check:

    Use ClassName() to create objects [OK]
Hint: Use ClassName() to create objects in Python [OK]
Common Mistakes:
  • Using 'new' keyword like other languages
  • Trying to call a non-existent create() method
  • Using square brackets instead of parentheses
3. What will be the output of this code?
class Dog:
    def __init__(self, name):
        self.name = name

d = Dog('Buddy')
print(d.name)
medium
A. Buddy
B. Dog
C. name
D. Error

Solution

  1. Step 1: Understand object creation and attribute assignment

    The Dog class has an __init__ method that sets self.name to the given argument.
  2. Step 2: Trace the code execution

    When d = Dog('Buddy') runs, d.name becomes 'Buddy'. Printing d.name outputs 'Buddy'.
  3. Final Answer:

    Buddy -> Option A
  4. Quick Check:

    Object attribute prints assigned value [OK]
Hint: Print object.attribute to see stored value [OK]
Common Mistakes:
  • Printing class name instead of attribute
  • Expecting 'name' string output
  • Confusing attribute with variable name
4. Identify the error in this code:
class Person:
    def __init__(self, age):
        age = age

p = Person(30)
print(p.age)
medium
A. Attribute not assigned to self
B. Syntax error in class definition
C. Missing self in method parameters
D. print statement is incorrect

Solution

  1. Step 1: Check attribute assignment inside __init__

    The code assigns age = age, which only changes the local variable, not the object's attribute.
  2. Step 2: Correct way to assign attribute

    It should be self.age = age to store the value in the object.
  3. Final Answer:

    Attribute not assigned to self -> Option A
  4. Quick Check:

    Use self.attribute = value to store data [OK]
Hint: Always assign attributes with self.attribute = value [OK]
Common Mistakes:
  • Forgetting to use self for attributes
  • Confusing local variables with object attributes
  • Assuming assignment without self works
5. You want to create a class Book that stores title and author. Which code correctly creates an object and prints the title and author?
hard
A. class Book: def __init__(self): self.title = '1984' self.author = 'Orwell' b = Book('1984', 'Orwell') print(b.title, b.author)
B. class Book: def __init__(self, title, author): title = title author = author b = Book('1984', 'Orwell') print(b.title, b.author)
C. class Book: def __init__(self, title, author): self.title = title b = Book('1984', 'Orwell') print(b.title, b.author)
D. class Book: def __init__(self, title, author): self.title = title self.author = author b = Book('1984', 'Orwell') print(b.title, b.author)

Solution

  1. Step 1: Check attribute assignment in constructor

    The correct code defines __init__ with title and author parameters and assigns self.title = title and self.author = author.
  2. Step 2: Verify object creation and printing

    The object is created by passing arguments Book('1984', 'Orwell') matching the parameters, and both attributes print correctly. Others fail on missing self, incomplete assignments, or parameter mismatch.
  3. Final Answer:

    Correctly assigns both attributes to self using parameters -> Option D
  4. Quick Check:

    Assign all attributes with self and pass parameters [OK]
Hint: Assign all attributes with self and pass parameters [OK]
Common Mistakes:
  • Not assigning attributes to self
  • Missing parameters in constructor
  • Providing arguments to a parameterless constructor