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 an instance method in Python?
An instance method is a function defined inside a class that operates on an instance of the class. It takes <code>self</code> as the first parameter, which refers to the specific object calling the method.
Click to reveal answer
beginner
What is a class method in Python?
A class method is a method that takes the class itself as the first argument, usually named <code>cls</code>. It is marked with the <code>@classmethod</code> decorator and can access or modify class state shared by all instances.
Click to reveal answer
beginner
What is a static method in Python?
A static method is a method inside a class that does not take <code>self</code> or <code>cls</code> as the first parameter. It behaves like a regular function but belongs to the class's namespace. It is marked with the <code>@staticmethod</code> decorator.
Click to reveal answer
intermediate
How do instance, class, and static methods differ in how they are called?
Instance methods are called on objects and receive the object as <code>self</code>. Class methods are called on the class and receive the class as <code>cls</code>. Static methods can be called on the class or instance but do not receive any automatic first argument.
Click to reveal answer
intermediate
Why use a class method instead of an instance method?
Use a class method when you need to access or modify class-level data that is shared across all instances, or when you want to create alternative constructors. Instance methods are for behavior related to individual objects.
Click to reveal answer
Which method type automatically receives the instance as the first argument?
ANone of the above
BClass method
CStatic method
DInstance method
✗ Incorrect
Instance methods receive the instance (self) automatically when called on an object.
Which decorator is used to define a class method?
A@staticmethod
B@instance
C@classmethod
D@class
✗ Incorrect
The @classmethod decorator marks a method as a class method.
What is true about static methods?
AThey receive the class as the first argument
BThey do not receive any automatic first argument
CThey receive the instance as the first argument
DThey can only be called on instances
✗ Incorrect
Static methods behave like regular functions inside the class and do not receive self or cls automatically.
When would you use a class method?
ATo access or modify class-level data
BTo access or modify instance-specific data
CTo create a regular function inside a class
DTo override instance methods
✗ Incorrect
Class methods are used to work with class-level data shared by all instances.
Which method type can be called on both the class and its instances?
AStatic method
BClass method
CNone of the above
DInstance method
✗ Incorrect
Static methods can be called on the class or instances without receiving any automatic argument.
Explain the differences between instance, class, and static methods in Python.
Think about what each method receives as the first parameter and what data it can access.
You got /3 concepts.
When should you choose to use a class method over an instance method?
Consider the difference between data that belongs to the whole class versus data that belongs to one object.
You got /3 concepts.
Practice
(1/5)
1. Which method type in Python automatically receives the instance as the first argument named self?
easy
A. Instance method
B. Class method
C. Static method
D. Global function
Solution
Step 1: Understand method types
Instance methods receive the instance as the first argument, usually named self.
Step 2: Identify method with self
Class methods receive the class as cls, static methods receive no automatic first argument.
Final Answer:
Instance method -> Option A
Quick Check:
Method with self = Instance method [OK]
Hint: Look for self as first parameter for instance methods [OK]
Common Mistakes:
Confusing cls with self
Thinking static methods have self
Mixing global functions with methods
2. Which decorator is used to define a class method in Python?
easy
A. @classmethod
B. @staticmethod
C. @instance
D. @class
Solution
Step 1: Recall Python decorators for methods
Class methods use the @classmethod decorator to receive the class as the first argument.
Step 2: Identify correct decorator
@staticmethod is for static methods, @instance and @class are invalid decorators.
Final Answer:
@classmethod -> Option A
Quick Check:
Class method decorator = @classmethod [OK]
Hint: Class methods always use @classmethod decorator [OK]
Common Mistakes:
Using @staticmethod for class methods
Assuming @instance is a valid decorator
Confusing decorator names
3. What is the output of this code?
class MyClass:
@staticmethod
def greet():
return 'Hello'
print(MyClass.greet())
medium
A. AttributeError
B. TypeError
C. None
D. 'Hello'
Solution
Step 1: Understand static method behavior
Static methods do not require an instance or class argument and can be called directly on the class.
Step 2: Analyze the code output
The static method greet returns the string 'Hello', so print(MyClass.greet()) outputs 'Hello'.
Final Answer:
'Hello' -> Option D
Quick Check:
Static method call returns 'Hello' [OK]
Hint: Static methods can be called on class without arguments [OK]
Common Mistakes:
Expecting a TypeError for missing self
Confusing static with instance method call
Thinking static methods return None by default
4. Identify the error in this code:
class Example:
@classmethod
def show(cls):
print(cls.value)
Example.show()
medium
A. Missing @staticmethod decorator
B. Method should use 'self' instead of 'cls'
C. Missing class attribute 'value'
D. Syntax error in method definition
Solution
Step 1: Check class method usage
The method show is a class method and tries to print cls.value.
Step 2: Verify class attribute existence
The class Example does not define value, so accessing cls.value causes an AttributeError at runtime.
Final Answer:
Missing class attribute 'value' -> Option C
Quick Check:
Class attribute missing causes error [OK]
Hint: Class methods need class attributes to access via cls [OK]
Common Mistakes:
Confusing instance and class attributes
Thinking @staticmethod fixes attribute errors
Using 'self' in class methods incorrectly
5. You want a method that can be called on the class or instance but does NOT access instance or class data. Which method type should you use?
hard
A. Class method
B. Static method
C. Instance method
D. Property method
Solution
Step 1: Understand method access types
Instance methods access instance data via self, class methods access class data via cls.
Step 2: Identify method without data access
Static methods do not access instance or class data and can be called on both class and instance.