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
Creating objects
📖 Scenario: You are building a simple program to represent a book in a library system. Each book has a title and an author.
🎯 Goal: Create a class called Book and then create an object of this class with specific details. Finally, display the book's title and author.
📋 What You'll Learn
Create a class named Book with an __init__ method that takes title and author as parameters.
Create an object called my_book of the Book class with the title 'The Great Gatsby' and author 'F. Scott Fitzgerald'.
Print the title and author of my_book in the format: Title: The Great Gatsby, Author: F. Scott Fitzgerald.
💡 Why This Matters
🌍 Real World
Creating objects is how we represent real things like books, cars, or people in a program. This helps organize data and behavior together.
💼 Career
Understanding how to create and use objects is essential for many programming jobs, especially in software development and data modeling.
Progress0 / 4 steps
1
Create the Book class
Create a class called Book with an __init__ method that takes self, title, and author as parameters. Inside the method, assign title to self.title and author to self.author.
Python
Hint
Remember, the __init__ method is used to initialize the object's attributes.
2
Create an object of the Book class
Create an object called my_book of the Book class with the title 'The Great Gatsby' and author 'F. Scott Fitzgerald'.
Python
Hint
Use the class name Book followed by parentheses with the title and author as arguments.
3
Access object attributes
Use my_book.title and my_book.author to access the title and author of the book. Create a string variable called book_info that stores the text: Title: The Great Gatsby, Author: F. Scott Fitzgerald using an f-string.
Python
Hint
Use an f-string to combine the title and author into one string.
4
Print the book information
Print the variable book_info to display the book's title and author.
Python
Hint
Use the print() function to show the book information.
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
Step 1: Understand the role of __init__
The __init__ method is called automatically when a new object is created from a class.
Step 2: Identify what __init__ does
It sets up the initial state by assigning values to the object's attributes.
Final Answer:
To initialize the object's attributes when it is created -> Option C
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
Step 1: Recall Python object creation syntax
In Python, you create an object by calling the class name followed by parentheses.
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.
Final Answer:
car = Car() -> Option B
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
Step 1: Understand object creation and attribute assignment
The Dog class has an __init__ method that sets self.name to the given argument.
Step 2: Trace the code execution
When d = Dog('Buddy') runs, d.name becomes 'Buddy'. Printing d.name outputs 'Buddy'.
Final Answer:
Buddy -> Option A
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)
The code assigns age = age, which only changes the local variable, not the object's attribute.
Step 2: Correct way to assign attribute
It should be self.age = age to store the value in the object.
Final Answer:
Attribute not assigned to self -> Option A
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
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.
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.
Final Answer:
Correctly assigns both attributes to self using parameters -> Option D
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