Must-Know Python Developer Interview Questions and Answers (50 Questions)
Python interviews today evaluate far more than syntax. Interviewers assess how well you understand Python’s object model, memory behavior, concurrency limitations, performance trade-offs, and production readiness.
This article covers 50 must-know Python interview questions, ranging from fundamentals to advanced internals, with explanations that prepare you for real follow-up questions.
Section 1: Core Language Semantics (Q1–Q10)
Q1. Is everything in Python an object?
Answer:
Yes. In Python, everything is an object—including integers, strings, functions, classes, and modules. Each object has:
identity (
id)type (
type)value
This uniform object model enables features like first-class functions and dynamic behavior.
Q2. What is the difference between is and ==?
Answer:
==checks value equalityischecks object identity
a = [1, 2]
b = [1, 2]
a == b # True
a is b # False
Using is for value comparison is a common interview trap.
Q3. Explain Python’s variable assignment model.
Answer:
Python variables are references to objects, not containers holding values.
a = 10
b = a
Both a and b reference the same object until reassigned.
Q4. What are truthy and falsy values?
Answer:
Falsy values include:
FalseNone0,0.0""[],{},set()
Everything else is truthy. Custom objects can control truthiness using __bool__ or __len__.
Q5. What is duck typing?
Answer:
Duck typing focuses on behavior, not type.
“If it quacks like a duck, it’s a duck.”
Python does not require explicit interfaces—method presence is sufficient.
Q6. What happens when you import a module?
Answer:
Module code executes once
A module object is created
Stored in
sys.modulesSubsequent imports reuse the cached module
Q7. Difference between None and False?
Answer:
Nonerepresents absence of valueFalseis a boolean value
None == False # False
None is False # False
Q8. What is Python’s execution model?
Answer:
Python source code → bytecode → executed by Python Virtual Machine (PVM).
This model applies to CPython, the reference implementation.
Q9. What is late binding in Python?
Answer:
Variables in closures are looked up when the function is called, not when it is defined—leading to common bugs in loops.
Q10. What is Python’s indentation rule?
Answer:
Indentation defines code blocks. It is syntactically significant, replacing braces used in other languages.
Section 2: Data Types & Mutability (Q11–Q18)
Q11. Difference between mutable and immutable objects?
Answer:
Mutable:
list,dict,setImmutable:
int,str,tuple
Mutability impacts performance, memory, and function behavior.
Q12. Why are strings immutable?
Answer:
Performance optimization
Memory sharing
Hash safety
Immutability allows strings to be used as dictionary keys.
Q13. What is shallow vs deep copy?
Answer:
Shallow copy copies references
Deep copy copies entire object graph
import copy
copy.copy()
copy.deepcopy()
Q14. Why are dictionary keys required to be immutable?
Answer:
Dictionary keys rely on hash values. Mutable objects can change hash, breaking lookup guarantees.
Q15. Explain list vs tuple performance.
Answer:
Tuples are:
Faster
Memory efficient
Hashable (if contents are hashable)
Lists are dynamic and flexible but slightly slower.
Q16. What is object interning?
Answer:
Python caches small integers and some strings to optimize memory and comparisons.
Q17. Why does 256 is 256 return True?
Answer:
Because small integers are cached by CPython. This behavior is an implementation detail and should not be relied upon.
Q18. What is __slots__?
Answer:__slots__ restricts attribute creation, reducing memory usage and improving access speed.
Section 3: Functions & Closures (Q19–Q26)
Q19. Why are default mutable arguments dangerous?
Answer:
Default arguments are evaluated once at function definition, not at runtime.
Q20. What is a closure?
Answer:
A closure captures variables from its enclosing scope, retaining them even after the outer function exits.
Q21. What are first-class functions?
Answer:
Functions can be assigned to variables, passed as arguments, and returned from other functions.
Q22. What is a decorator?
Answer:
A decorator modifies function behavior without altering its source code.
Q23. Why use functools.wraps?
Answer:
To preserve original function metadata such as name, docstring, and annotations.
Q24. Difference between generator and iterator?
Answer:
Generator: created using
yieldIterator: implements
__iter__()and__next__()
Q25. What are lambda limitations?
Answer:
Single expression only
No statements
Reduced readability for complex logic
Q26. When should you use generators?
Answer:
For large data streams, lazy evaluation, and memory efficiency.
Section 4: OOP & Design (Q27–Q34)
Q27. What is multiple inheritance?
Answer:
A class inheriting from multiple base classes. Python resolves conflicts using MRO.
Q28. What is Method Resolution Order (MRO)?
Answer:
The order in which Python searches base classes for a method, using the C3 linearization algorithm.
Q29. Difference between class and instance variables?
Answer:
Class variable: shared across instances
Instance variable: specific to object
Q30. What is polymorphism?
Answer:
Different objects responding to the same method name in different ways.
Q31. What are abstract base classes?
Answer:
Defined using abc module to enforce method implementation.
Q32. What is composition vs inheritance?
Answer:
Composition favors has-a relationships and reduces tight coupling.
Q33. What is __new__ vs __init__?
Answer:
__new__: creates object__init__: initializes object
Q34. What is operator overloading?
Answer:
Customizing operators using special methods like __add__, __eq__.
Section 5: Concurrency, Memory & Production (Q35–Q50)
Q35. What is the Global Interpreter Lock (GIL)?
Answer:
A mutex ensuring only one thread executes Python bytecode at a time in CPython.
Q36. Why does GIL exist?
Answer:
Simplifies memory management and reference counting, improving single-thread performance.
Q37. Threading vs multiprocessing?
Answer:
Threading: I/O-bound
Multiprocessing: CPU-bound
Q38. What is asyncio?
Answer:
An event-loop-based concurrency model for handling many I/O tasks efficiently.
Q39. What is a race condition?
Answer:
When multiple threads access shared data without synchronization.
Q40. How does garbage collection work?
Answer:
Uses reference counting plus cyclic garbage collection.
Q41. What is weakref?
Answer:
Allows referencing objects without increasing reference count.
Q42. How do you profile Python code?
Answer:
Using cProfile, timeit, and memory profilers.
Q43. Difference between print and logging?
Answer:
Logging supports levels, persistence, formatting, and production diagnostics.
Q44. What are type hints?
Answer:
Optional annotations improving readability and tooling support.
Q45. What is pyproject.toml?
Answer:
Modern configuration file for packaging and dependency management.
Q46. What is a virtual environment?
Answer:
Isolated environment for dependency management.
Q47. Why avoid eval()?
Answer:
Security risk—executes arbitrary code.
Q48. How do you write secure Python code?
Answer:
Avoid unsafe deserialization
Validate input
Use least privilege
Keep dependencies updated
Q49. How do you design Python for scale?
Answer:
Async I/O
Horizontal scaling
Stateless services
Background workers
Q50. What distinguishes a senior Python developer?
Answer:
Deep understanding of internals
Performance awareness
Production discipline
Ability to reason about trade-offs
Final Note
If you can confidently answer all 50 questions, you are interview-ready for most Python roles, including senior backend positions.
Comments
Post a Comment