Answer the following Python deep-dive questions:
-
Explain the Global Interpreter Lock (GIL) and its impact on CPU-bound vs I/O-bound tasks.
-
Compare threading, multiprocessing, and asyncio; provide scenarios and short code snippets for each.
-
Implement and explain a custom context manager and a decorator; discuss common use cases.
-
Describe iterators and generators, including
yield from
, generator cleanup, and backpressure.
-
Discuss type hints (PEP
484),
dataclasses
, and static analysis tools (e.g., mypy); show how types improve maintainability.
-
Explain packaging and environments (venv, pip, wheels) and dependable dependency management (pinning, lock files, reproducibility).
-
Identify performance pitfalls and demonstrate profiling (cProfile, line_profiler) and optimization techniques (vectorization, caching, PyPy/C extensions).
-
Describe Python memory management (reference counting, cyclic GC) and strategies to avoid leaks.
-
Outline exception handling best practices and how to design custom exceptions.