Loading

Quipoin Menu

Learn • Practice • Grow

python / Magic Methods
interview

Q1. What are magic (dunder) methods in Python?
Magic methods are special methods with double underscores (e.g., __init__, __str__) that allow classes to emulate built-in types and define behavior for operators, context managers, iteration, etc. They are called implicitly by Python in certain situations.

Q2. What is the purpose of __str__ and __repr__?
__str__ is called by str() and print() for a user-friendly string representation. __repr__ is called by repr() and is meant to be an unambiguous representation, often used for debugging. If __str__ is missing, __repr__ is used as a fallback.

Q3. What are the magic methods for arithmetic operators?
For addition: __add__, subtraction: __sub__, multiplication: __mul__, division: __truediv__, etc. There are also reversed methods (__radd__) and in-place (__iadd__). Example:
a + b calls a.__add__(b)

Q4. How do you make an object callable?
Define the __call__ method in the class. The instance can then be called like a function. Example:
class Adder: def __init__(self, n): self.n = n def __call__(self, x): return self.n + x add5 = Adder(5) print(add5(3)) # 8

Q5. What are the magic methods for context managers?
__enter__ and __exit__ are used to implement context managers (with statement). __enter__ sets up the context, __exit__ handles cleanup. Example:
with MyContext() as ctx: # use ctx