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
Recall & Review
beginner
What is a class in Python?
A class is a blueprint or template for creating objects. It defines properties (attributes) and behaviors (methods) that the objects created from it will have.
Click to reveal answer
beginner
What is an object in Python?
An object is an instance of a class. It is a specific example created using the class blueprint, holding actual data and able to perform actions defined by the class.
Click to reveal answer
beginner
What is the purpose of the __init__ method in a class?
The __init__ method is a special function called a constructor. It runs automatically when a new object is created and is used to set up initial values for the object's attributes.
Click to reveal answer
beginner
How do you create an object from a class named Car?
You create an object by calling the class name like a function. For example: <code>my_car = Car()</code> creates an object named my_car from the Car class.
Click to reveal answer
intermediate
What is the difference between a class attribute and an instance attribute?
A class attribute is shared by all objects of the class. An instance attribute is unique to each object and usually set inside the __init__ method.
Click to reveal answer
What keyword is used to define a class in Python?
Aobject
Bclass
Cdef
Dfunc
✗ Incorrect
The keyword class is used to define a new class in Python.
Which method is automatically called when creating a new object?
A__init__
B__str__
C__call__
D__new__
✗ Incorrect
The __init__ method runs automatically to initialize a new object.
How do you access an object's attribute named 'color'?
Acolor.object
Bobject->color
Cobject[color]
Dobject.color
✗ Incorrect
Use dot notation like object.color to access an attribute.
What is the output of this code?
class Dog:
def __init__(self, name):
self.name = name
my_dog = Dog('Buddy')
print(my_dog.name)
ABuddy
Bname
CDog
DError
✗ Incorrect
The object my_dog has the attribute name set to 'Buddy', so printing it shows 'Buddy'.
Which of these is true about instance methods?
AThey can only access class attributes.
BThey cannot modify object data.
CThey must have 'self' as the first parameter.
DThey are called without creating an object.
✗ Incorrect
Instance methods always have 'self' as the first parameter to access the object's data.
Explain in your own words what a class and an object are, and how they relate.
Think about how a cookie cutter (class) makes cookies (objects).
You got /3 concepts.
Describe the role of the __init__ method and why it is important when creating objects.
It's like setting up your new phone with your name and settings right after buying it.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a class in Python?
easy
A. To execute code immediately
B. To store data in variables only
C. To create a blueprint for objects
D. To perform mathematical calculations
Solution
Step 1: Understand what a class represents
A class is like a blueprint or template that defines how objects are created and what they can do.
Step 2: Identify the role of a class
Classes organize code by grouping data and functions that belong together, allowing creation of many objects from the same blueprint.
Final Answer:
To create a blueprint for objects -> Option C
Quick Check:
Class = blueprint for objects [OK]
Hint: Classes define blueprints; objects are instances [OK]
Common Mistakes:
Thinking classes run code immediately
Confusing classes with simple variables
Believing classes only store data
2. Which of the following is the correct way to define a class named Car in Python?
easy
A. class Car():
B. def Car():
C. function Car():
D. Car class:
Solution
Step 1: Recall Python class syntax
In Python, classes are defined using the keyword class followed by the class name and parentheses.
Step 2: Check each option
class Car(): uses class Car(): which is correct syntax. Others use wrong keywords or formats.
Final Answer:
class Car(): -> Option A
Quick Check:
Class definition starts with 'class' keyword [OK]
Hint: Use 'class ClassName():' to define a class [OK]
Common Mistakes:
Using 'def' instead of 'class'
Using 'function' keyword (not Python)
Missing 'class' keyword
3. What will be the output of this code?
class Dog():
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says Woof!"
my_dog = Dog("Buddy")
print(my_dog.bark())
medium
A. Error: missing self parameter
B. Buddy says Woof!
C. Dog says Woof!
D. Woof!
Solution
Step 1: Understand the __init__ method
The __init__ method sets the name attribute to "Buddy" when my_dog is created.
Step 2: Analyze the bark method call
The bark method returns a string using the dog's name, so it returns "Buddy says Woof!".
Final Answer:
Buddy says Woof! -> Option B
Quick Check:
Method uses self.name = Buddy [OK]
Hint: Methods use self to access object data [OK]
Common Mistakes:
Forgetting to pass 'self' in methods
Confusing class name with object name
Expecting method to print instead of return
4. Find the error in this class definition:
class Person():
def __init__(self, name):
name = name
p = Person("Alice")
print(p.name)
medium
A. Class name should be lowercase
B. Missing self in __init__ parameters
C. print(p.name) should be print(name)
D. Should assign to self.name, not name
Solution
Step 1: Check attribute assignment in __init__
The code assigns name = name, which only changes the local variable, not the object's attribute.
Step 2: Correct assignment to object attribute
It should be self.name = name to store the value in the object for later access.
Final Answer:
Should assign to self.name, not name -> Option D
Quick Check:
Use self.attribute = value to save data [OK]
Hint: Assign attributes with self.attribute = value [OK]
Common Mistakes:
Assigning to local variable instead of self.attribute
Forgetting self in method parameters
Trying to print undefined variables
5. You want to create a class BankAccount that stores an account holder's name and balance. It should have a method deposit(amount) that adds money to the balance only if the amount is positive. Which code correctly implements this?
hard
A. class BankAccount():
def __init__(self, name, balance=0):
self.name = name
self.balance = balance
def deposit(self, amount):
if amount > 0:
self.balance += amount
B. class BankAccount():
def __init__(self, name):
self.name = name
balance = 0
def deposit(self, amount):
self.balance = self.balance + amount
C. class BankAccount():
def __init__(self, name, balance=0):
self.name = name
self.balance = balance
def deposit(self, amount):
self.balance += amount
D. class BankAccount():
def __init__(self, name):
self.name = name
self.balance = 0
def deposit(self, amount):
if amount >= 0:
self.balance = amount
Solution
Step 1: Check __init__ method for attributes
class BankAccount():
def __init__(self, name, balance=0):
self.name = name
self.balance = balance
def deposit(self, amount):
if amount > 0:
self.balance += amount correctly sets self.name and self.balance with a default balance of 0.
Step 2: Verify deposit method logic
class BankAccount():
def __init__(self, name, balance=0):
self.name = name
self.balance = balance
def deposit(self, amount):
if amount > 0:
self.balance += amount adds amount to self.balance only if amount > 0, which matches the requirement.
Final Answer:
Correctly implements the class with proper attribute initialization and deposit validation -> Option A
Quick Check:
Check attribute setup and positive amount condition [OK]
Hint: Check attribute setup and validate input in methods [OK]