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)]