Challenge - 5 Problems
Magic Methods Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this code using __str__ magic method?
Consider the following Python class with a magic method. What will be printed when the code runs?
Python
class Book: def __init__(self, title): self.title = title def __str__(self): return f"Book title: {self.title}" b = Book("Python Basics") print(b)
Attempts:
2 left
💡 Hint
The __str__ method controls what print shows for an object.
✗ Incorrect
The __str__ magic method defines the string representation of an object when printed. Here, it returns 'Book title: Python Basics'.
❓ Predict Output
intermediate2:00remaining
What does this code print using __len__ magic method?
Look at this class with a __len__ method. What will print when len(obj) is called?
Python
class Basket: def __init__(self, items): self.items = items def __len__(self): return len(self.items) obj = Basket(['apple', 'banana', 'cherry']) print(len(obj))
Attempts:
2 left
💡 Hint
The __len__ method tells Python how to get the length of an object.
✗ Incorrect
The __len__ magic method returns the length of the items list, which has 3 elements.
🧠 Conceptual
advanced2:00remaining
Why use magic methods like __add__ in classes?
What is the main purpose of defining magic methods such as __add__ in a Python class?
Attempts:
2 left
💡 Hint
Think about what happens when you use + between two objects.
✗ Incorrect
Magic methods like __add__ let you define how operators like + behave with your objects, enabling custom addition behavior.
❓ Predict Output
advanced2:00remaining
What error does this code raise without __eq__ magic method?
What happens when you compare two objects of this class without defining __eq__?
Python
class Point: def __init__(self, x, y): self.x = x self.y = y p1 = Point(1, 2) p2 = Point(1, 2) print(p1 == p2)
Attempts:
2 left
💡 Hint
Without __eq__, == compares object identity, not content.
✗ Incorrect
Without __eq__, == checks if both variables point to the same object, which they do not, so it returns False.
🧠 Conceptual
expert2:00remaining
Which magic method allows an object to be used as a context manager?
To use an object with the 'with' statement, which magic methods must the class implement?
Attempts:
2 left
💡 Hint
The 'with' statement needs special methods to start and end the block.
✗ Incorrect
The __enter__ and __exit__ magic methods define what happens when entering and exiting a 'with' block, enabling context management.