Question Banks
Python Coding & Output
25 Python interview questions covering generators, decorators, GIL, and async patterns
Key Topics
- Generator expressions vs list comprehensions (memory)
- Decorator patterns (class-based, functools.wraps)
- GIL implications for multi-threading vs multi-processing
- Async/await and event loop internals
- Metaclasses and descriptor protocol
- Memory profiling and optimization
- Context managers and __enter__/__exit__
Q1: Mutable Default Arguments
def append_to(element, target=[]):
target.append(element)
return target
print(append_to(1)) # [1]
print(append_to(2)) # [1, 2] NOT [2]! Why: Default arguments are evaluated once at function definition. The list object is shared across calls.
Q2: Generator Memory Efficiency
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# Lazy evaluation O(1) memory regardless of how many values consumed
fib = fibonacci()
first_10 = [next(fib) for _ in range(10)]