{"id":19317,"date":"2025-07-29T15:38:25","date_gmt":"2025-07-29T10:08:25","guid":{"rendered":"https:\/\/www.foundit.sg\/career-advice\/?p=19317"},"modified":"2025-07-29T15:43:00","modified_gmt":"2025-07-29T10:13:00","slug":"top-python-developer-interview-questions-and-answers","status":"publish","type":"post","link":"https:\/\/www.foundit.sg\/career-advice\/top-python-developer-interview-questions-and-answers\/","title":{"rendered":"Top 70+ Python Interview Questions and Answers [2026]"},"content":{"rendered":"\n<p>  <!-- wp:paragraph -->\r\n<p>Most Python interviews don\u2019t test your memory, they test how well you think. If you're preparing for a <strong>Python developer role<\/strong> in 2026, expect a mix of practical, syntax-based, and situational questions.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>This list includes the <strong>most asked Python interview questions<\/strong> that show up in coding rounds, HR panels, and tech discussions. <\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Whether you\u2019re a fresher or have a few years of experience, these <strong>Python interview questions<\/strong> reflect what tech companies actually ask today.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>You'll find detailed answers on Python basics, data types, loops, OOP, error handling, and advanced topics like decorators, iterators, and memory management. <\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>We\u2019ve also included real-world scenarios that test how well you apply Python in actual projects.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Use this as a last-mile revision set, or as a reference to brush up before your next <strong>Python interview<\/strong>.<\/p>\r\n<!-- \/wp:paragraph -->  <\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background-color:#ABB7C245;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;border-radius:8px\">\n  <details>\n    <summary><strong>\ud83d\udd3d Table of Contents<\/strong><\/summary>\n    <ol>\n      <li><strong><a href=\"#python-freshers\">Python Interview Questions for Freshers<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-experienced\">Python Interview Questions for Experienced Developers<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-advanced\">Advanced Python Interview Questions<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-oop\">Object-Oriented Programming in Python<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-ds\">Python Data Structures &#038; Built-in Functions<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-error-handling\">Python Error Handling &#038; Debugging<\/a><\/strong><\/li>\n      <li><strong><a href=\"#python-real-world\">Scenario-Based &#038; Real-World Python Questions<\/a><\/strong><\/li>\n      <li><strong><a href=\"#checklist-table\">Python Interview Checklist + Concept Comparison<\/a><\/strong><\/li>\n      <li><strong><a href=\"#faqs\">FAQs on Python Developer Interviews<\/a><\/strong><\/li>\n    <\/ol>\n  <\/details>\n<\/div>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ffdeed\"><strong>Read Also: <a href=\"https:\/\/www.foundit.sg\/career-advice\/top-python-developer-skills-you-need-to-get-hired\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Top Python Developer Skills You Need to Get Hired in 2026<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-freshers\" style=\"background-color:#b4e2ff\">Python Interview Questions for Freshers<\/h2>\n\n\n\n<p><strong>1. What is Python and why is it so popular?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Python is an interpreted, high-level programming language used in automation, data science, backend development, scripting, and more. <br>Its popularity comes from three things: simplicity, flexibility, and a strong ecosystem of libraries like Pandas, NumPy, and Django. <br>Whether you&#8217;re a fresher or experienced, Python&#8217;s readable syntax makes it ideal to learn and build real-world projects faster. <\/p>\n\n\n\n<p><strong>2. How is Python different from Java or C++?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Python is dynamically typed, meaning you don\u2019t need to declare variable types. It uses indentation to define code blocks, while Java and C++ use braces. <br>Python runs slower than compiled languages like C++, but it\u2019s faster to write and easier to debug \u2014 perfect for rapid development. <\/p>\n\n\n\n<p><strong>3. What are the key features of Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Key features include: &#8211; Simple syntax and readability &#8211; Cross-platform compatibility &#8211; Extensive standard library &#8211; Support for procedural, object-oriented, and functional programming &#8211; Automatic memory management. <br>Python is also beginner-friendly, which is why it&#8217;s often used in academic and enterprise projects alike. <\/p>\n\n\n\n<p><strong>4. What are Python\u2019s basic data types?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nPython supports various built-in data types like:  \n&#8211; <code>int<\/code> (integers)  \n&#8211; <code>float<\/code> (decimal numbers)  \n&#8211; <code>str<\/code> (strings)  \n&#8211; <code>bool<\/code> (True\/False)  \n&#8211; <code>list<\/code>, <code>tuple<\/code>, <code>dict<\/code>, <code>set<\/code>, and <code>NoneType<\/code>.  \nEach is used depending on the kind of data you\u2019re working with.\n<\/p>\n\n\n\n<p><strong>5. What is PEP 8 in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">PEP 8 is the official style guide for Python code. It covers everything from indentation and line spacing to variable naming conventions. <br>Following PEP 8 makes your code more readable and consistent, which is important in teams or when contributing to open-source. <\/p>\n\n\n\n<p> <\/p>\n\n\n\n\n\n<p><strong>6. What\u2019s the difference between list and tuple in Python?<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>List<\/th><th>Tuple<\/th><\/tr><\/thead><tbody><tr><td>Mutable<\/td><td>Immutable<\/td><\/tr><tr><td>Uses square brackets <code>[]<\/code><\/td><td>Uses parentheses <code>()<\/code><\/td><\/tr><tr><td>Slower but flexible<\/td><td>Faster, used for fixed data<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nUse lists when you need to add, remove, or modify data.  \nTuples are best for fixed collections \u2014 like dates, coordinates, or config data.\n<\/p>\n\n\n\n<p><strong>7. What is indentation and why is it important in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nIn Python, indentation isn\u2019t just for readability \u2014 it defines blocks of code.  \nAn incorrect indent can break your script or raise an IndentationError.  \nStandard practice is to use 4 spaces per indent level (no tabs).\n<\/p>\n\n\n\n<p><strong>8. How do you write comments in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nUse <code>#<\/code> for single-line comments.  \nFor docstrings or multiline explanations, wrap your comment in triple quotes like:  \n<code>\"\"\"This is a multi-line comment.\"\"\"<\/code>\n<\/p>\n\n\n\n<p><strong>9. What are Python\u2019s control flow statements?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Control flow statements in Python include: &#8211; <code>if<\/code>, <code>elif<\/code>, <code>else<\/code> for decisions &#8211; <code>for<\/code>, <code>while<\/code> for loops &#8211; <code>break<\/code>, <code>continue<\/code>, <code>pass<\/code> to manage loop behaviour. <br>These let your program respond to different conditions dynamically.<\/p>\n\n\n\n<p><strong>10. How do you handle exceptions in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nUse <code>try<\/code> and <code>except<\/code> blocks to catch errors without crashing your program.  \nYou can also use <code>finally<\/code> to clean up resources and <code>raise<\/code> to throw exceptions manually.  \nExample:\n<code>\ntry:  \n&nbsp;&nbsp;&nbsp;&nbsp;x = 1 \/ 0  \nexcept ZeroDivisionError:  \n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Can't divide by zero\")  \n<\/code>\n<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ffdeed\"><strong>Read Also: <a href=\"https:\/\/www.foundit.sg\/career-advice\/python-oops-interview-questions\/\" target=\"_blank\" rel=\"noreferrer noopener\">Top 50 Python OOPS Interview Questions and Answers<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-experienced\" style=\"background-color:#b4e2ff\"><strong>Python Interview Questions for Experienced Developers<\/strong><\/h2>\n\n\n\n<p><strong>Q11. What are Python decorators and how do they work?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Decorators in Python are functions that modify the behaviour of other functions or methods. They\u2019re often used to add functionality (like logging, access control, etc.) without changing the original code. <br>A decorator takes a function as input and returns a new function that adds some kind of processing before or after calling the original. They commonly use the <code><strong>@decorator_name<\/strong><\/code> syntax.<\/p>\n\n\n\n<p><strong>Q12. How is memory managed in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Python uses automatic memory management via reference counting and garbage collection. Each object has a reference count, and when the count drops to zero, memory is reclaimed. <br>For cycles (like in lists referencing themselves), Python\u2019s garbage collector detects and clears them periodically. Memory allocation for small objects is handled by the private heap.<\/p>\n\n\n\n<p><strong>Q13. What\u2019s the difference between shallow copy and deep copy?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A shallow copy creates a new object but doesn\u2019t create copies of nested objects\u2014it just references them. A deep copy creates a new object and recursively copies all nested elements. Use <code><strong>copy.copy()<\/strong><\/code> for shallow copy and <code><strong>copy.deepcopy()<\/strong><\/code> for deep copy. This distinction matters when working with nested structures like lists or dictionaries.<\/p>\n\n\n\n<p><strong>Q14. How are *args and **kwargs used in Python functions?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>*args<\/code> allows a function to accept a variable number of positional arguments. <code>**kwargs<\/code> lets it accept keyword arguments. <br>They are useful when you don&#8217;t know in advance how many arguments will be passed. Internally, <code><strong>args<\/strong><\/code> is a tuple and <code><strong>kwargs<\/strong><\/code> is a dictionary.<\/p>\n\n\n\n<p><strong>Q15. What is the Global Interpreter Lock (GIL) in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">The GIL is a mutex in CPython that allows only one thread to execute Python bytecode at a time. It simplifies memory management but limits multi-threaded performance in CPU-bound tasks. For parallelism, developers often use multiprocessing (spawning separate processes) instead of threading in Python.<\/p>\n\n\n\n<p><strong>Q16. What\u2019s the difference between is and == in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>==<\/code> checks if two variables have the same value. <code>is<\/code> checks if they refer to the exact same object in memory. For example, two different lists with identical contents are equal (<code>==<\/code>) but not the same object (<code>is<\/code>).<\/p>\n\n\n\n<p><strong>Q17. What are Python generators and why use them?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Generators are a way to create iterators using the <code>yield<\/code> statement. They produce values lazily, one at a time, which is memory-efficient for large data streams. They&#8217;re often used in loops, file reading, or pipelines where you don\u2019t want to store the whole result set in memory.<\/p>\n\n\n\n<p><strong>Q18. How do Python iterators and iterables work?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">An iterable is any object you can loop over (like a list or string). An iterator is an object that maintains state and produces the next value when you call <code><strong>next()<\/strong><\/code>. <br>Iterators are created by calling <code><strong>iter()<\/strong><\/code> on an iterable. Under the hood, <code><strong>for<\/strong><\/code> loops use iterators to fetch items one by one.<\/p>\n\n\n\n<p><strong>Q19. Explain list comprehension with an example.<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">List comprehensions are a concise way to create lists. Instead of using loops, you can write:<br><code>squares = [x * x for x in range(5)]<\/code><br>This is cleaner and faster than the loop version. <br>You can also add conditions: <code>[x for x in range(10) if x % 2 == 0]<\/code>.<\/p>\n\n\n\n<p><strong>Q20. What is a lambda function in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A lambda function is an anonymous, one-line function defined using the <code>lambda<\/code> keyword. It\u2019s often used for short operations like: <code>lambda x: x + 1<\/code>. Lambdas are useful in <code><strong>map()<\/strong><\/code>, <code><strong>filter()<\/strong><\/code>, and <code><strong>sorted()<\/strong><\/code> with custom keys.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ffdeed\"><strong>Read Also: <a href=\"https:\/\/www.foundit.sg\/career-advice\/python-selenium-interview-questions-and-answers\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python Selenium Interview Questions with Answers<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Checklist: Key Intermediate Python Concepts to Master<\/strong> in 2026<\/h2>\n\n\n\n<ul style=\"background-color:#fbfbc6\" class=\"wp-block-list is-style-check has-background\">\n<li>Understand how and when to use <code>lambda<\/code> functions effectively<\/li>\n\n\n\n<li>Be comfortable with <strong>decorators<\/strong> and how they wrap functions<\/li>\n\n\n\n<li>Know the difference between <strong>is<\/strong> vs <strong>==<\/strong> and when identity matters<\/li>\n\n\n\n<li>Practise using <strong>map()<\/strong>, <strong>filter()<\/strong>, and <strong>list comprehensions<\/strong><\/li>\n\n\n\n<li>Review <strong>generators<\/strong> and <code>yield<\/code> for memory-efficient iteration<\/li>\n\n\n\n<li>Learn Python&#8217;s approach to <strong>memory management<\/strong> and garbage collection<\/li>\n\n\n\n<li>Get hands-on with <strong>try-except-finally<\/strong> error handling patterns<\/li>\n\n\n\n<li>Know how the <strong>with<\/strong> statement ensures safe file handling<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-advanced\" style=\"background-color:#b4e2ff\"><strong>Advanced Python Interview Questions<\/strong><\/h2>\n\n\n\n<p><strong>Q21. What is a Python generator and how is it different from a normal function?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A generator is a function that returns an iterator and allows lazy evaluation using the <code>yield<\/code> keyword instead of <code>return<\/code>. Unlike normal functions, which compute all values and return them at once, generators yield one item at a time and suspend their state between calls. This makes them memory-efficient and ideal for handling large datasets or infinite sequences.<\/p>\n\n\n\n<p><strong>Q22. What are metaclasses in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Metaclasses define how classes behave. In Python, everything is an object \u2014 including classes themselves. A metaclass is the class of a class. You can use metaclasses to modify class creation by overriding the <code>__new__<\/code> or <code>__init__<\/code> methods. They are used in frameworks or libraries that need to inject custom logic into class construction.<\/p>\n\n\n\n<p><strong>Q23. Explain the Global Interpreter Lock (GIL) in Python.<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">The GIL is a mutex in CPython that ensures only one thread executes Python bytecode at a time. This prevents true multi-core parallelism for CPU-bound tasks. However, it doesn\u2019t affect I\/O-bound tasks, where threading can still be beneficial. For CPU-bound parallelism, alternatives like multiprocessing or using Jython\/PyPy are recommended.<\/p>\n\n\n\n<p><strong>Q24. How are decorators implemented and what are their use cases?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Decorators are functions that take another function and extend or modify its behavior without explicitly changing its code. They are often used for logging, access control, timing, caching, and memoization. Python uses the <code>@decorator_name<\/code> syntax to apply them above function definitions.<\/p>\n\n\n\n<p><strong>Q25. What is the difference between shallow copy and deep copy in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A shallow copy creates a new object but inserts references to the original nested objects. A deep copy creates a new object and recursively copies all objects within it. Use the <code>copy<\/code> module\u2019s <code>copy()<\/code> and <code>deepcopy()<\/code> for both types respectively.<\/p>\n\n\n\n<p><strong>Q26. How do Python closures work?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A closure is a function object that retains access to variables from its enclosing lexical scope, even after that scope has finished executing. This allows inner functions to remember the environment in which they were created. Closures are useful in decorators and callback scenarios.<\/p>\n\n\n\n<p><strong>Q27. What are Python coroutines and how do they differ from generators?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Coroutines, like generators, use <code>yield<\/code>, but can also consume values using <code>yield<\/code> or <code>await<\/code>. While generators are data producers, coroutines are more general and are used in asynchronous programming to pause and resume execution. They support cooperative multitasking in frameworks like asyncio.<\/p>\n\n\n\n<p><strong>Q28. What are Python descriptors?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Descriptors are objects that define any of the methods <code>__get__<\/code>, <code>__set__<\/code>, or <code>__delete__<\/code>. They\u2019re used to manage attribute access and are the basis for properties, methods, and static methods. Descriptors help build reusable attribute access logic.<\/p>\n\n\n\n<p><strong>Q29. What is monkey patching in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Monkey patching means dynamically modifying or extending classes or modules at runtime. While useful in testing or quick fixes, it should be used sparingly, as it can lead to unpredictable behaviour or maintenance issues.<\/p>\n\n\n\n<p><strong>Q30. What is the difference between <code>is<\/code> and <code>==<\/code> in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>==<\/code> checks for value equality \u2014 whether two variables have the same value. <code>is<\/code> checks for identity \u2014 whether two variables point to the same object in memory. Use <code>is<\/code> for singleton comparisons like <code>None<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-oop\" style=\"background-color:#b4e2ff\"><strong>Object-Oriented Programming in Python<\/strong><\/h2>\n\n\n\n<p><strong>Q31. What is object-oriented programming in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Object-oriented programming (OOP) is a paradigm where you model real-world entities as classes and objects. In Python, everything is an object. OOP promotes modularity and reusability through features like encapsulation, inheritance, and polymorphism.<\/p>\n\n\n\n<p><strong>Q32. What are the four pillars of OOP in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">The four pillars of OOP are:\n1. Encapsulation: Bundling data and methods together.\n2. Abstraction: Hiding internal details and exposing only essentials.\n3. Inheritance: Reusing code from parent classes.\n4. Polymorphism: Using the same method name with different behaviors.<\/p>\n\n\n\n<p><strong>Q33. How does inheritance work in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Inheritance allows a class (child) to inherit attributes and methods from another class (parent). Python supports single, multiple, and multilevel inheritance. The <code>super()<\/code> function can be used to access parent methods inside child classes.<\/p>\n\n\n\n<p><strong>Q34. What is the difference between class method and static method?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A class method uses the <code>@classmethod<\/code> decorator and receives the class as the first argument (<code>cls<\/code>). It can modify class state. A static method uses <code>@staticmethod<\/code> and does not take the instance or class as a default argument \u2014 it behaves like a regular function within a class.<\/p>\n\n\n\n<p><strong>Q35. What is method overriding in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Method overriding occurs when a subclass defines a method with the same name as one in its parent class. The child class method replaces the parent class version. It&#8217;s used to alter or extend inherited behavior.<\/p>\n\n\n\n<p><strong>Q36. What is encapsulation and how is it implemented in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Encapsulation means restricting direct access to some parts of an object. In Python, it\u2019s implemented by using underscores: a single underscore for protected members and double underscores for private ones (name mangling). Access is controlled using getter and setter methods or the <code>@property<\/code> decorator.<\/p>\n\n\n\n<p><strong>Q37. What is polymorphism in Python with example?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Polymorphism allows different classes to use methods with the same name but different implementations. Example:\n<code>len()<\/code> works on strings, lists, and dictionaries, but behaves differently. This promotes interface consistency across types.<\/p>\n\n\n\n<p><strong>Q38. What are magic methods in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Magic methods (dunder methods) are special methods with double underscores, like <code>__init__<\/code>, <code>__str__<\/code>, <code>__len__<\/code>, etc. They allow classes to define their own behavior for built-in operations like printing, addition, length, etc.<\/p>\n\n\n\n<p><strong>Q39. What is multiple inheritance in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Multiple inheritance is when a class inherits from more than one parent class. Python supports this directly. The Method Resolution Order (MRO) using the C3 linearization algorithm determines the order in which base classes are searched for attributes and methods.<\/p>\n\n\n\n<p><strong>Q40. How can you define a private variable in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">To define a private variable, prefix it with double underscores: <code>__varname<\/code>. Python performs name mangling, making it harder (but not impossible) to access from outside the class. Use this for internal-use variables you don\u2019t want to expose publicly.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ffdeed\"><strong>Read: <a href=\"https:\/\/www.foundit.sg\/career-advice\/python-developer-resume-sample-for-freshers\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python Developer Resume for Freshers [Tips &amp; Examples]<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-ds\" style=\"background-color:#b4e2ff\"><strong>Python Data Structures &amp; Built-in Functions<\/strong><\/h2>\n\n\n\n<p><strong>Q41. What are the main built-in data structures in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Python includes four primary built-in data structures:\n&#8211; <code>List<\/code>: Ordered, mutable, allows duplicates.\n&#8211; <code>Tuple<\/code>: Ordered, immutable, allows duplicates.\n&#8211; <code>Set<\/code>: Unordered, mutable, no duplicates.\n&#8211; <code>Dictionary<\/code>: Key-value pairs, unordered before Python 3.7, ordered from 3.7 onwards.<\/p>\n\n\n\n<p><strong>Q42. What is the difference between list and tuple in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Lists are mutable, meaning you can change, add, or remove items. Tuples are immutable, which makes them faster and safer for read-only operations. Tuples also use slightly less memory than lists.<\/p>\n\n\n\n<p><strong>Q43. When would you use a set in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Use a set when you want to store unique items and need fast membership testing. Sets are great for operations like union, intersection, and difference between collections. They&#8217;re unordered and don&#8217;t allow duplicates.<\/p>\n\n\n\n<p><strong>Q44. How do you merge two dictionaries in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">From Python 3.9 onwards, you can use the union operator:\n<code>merged = dict1 | dict2<\/code>\nFor earlier versions, use:\n<code>merged =  <\/code>\nThis creates a new dictionary with all keys and values from both.<\/p>\n\n\n\n<p><strong>Q45. What is list comprehension in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">List comprehension is a concise way to create lists. It combines a for-loop and optional condition in a single line.\nExample: <code>[x for x in range(5) if x % 2 == 0]<\/code> produces <code>[0, 2, 4]<\/code>.<\/p>\n\n\n\n<p><strong>Q46. What is the difference between <code>is<\/code> and <code>==<\/code> in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>==<\/code> checks if the values of two variables are equal. <code>is<\/code> checks whether they point to the same object in memory.\n<code>a == b<\/code> \u2192 True if values are the same. \n<code>a is b<\/code> \u2192 True only if <code>a<\/code> and <code>b<\/code> are the exact same object.<\/p>\n\n\n\n<p><strong>Q47. What are lambda functions in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Lambda functions are anonymous, single-expression functions created using the <code>lambda<\/code> keyword.\nSyntax: <code>lambda arguments: expression<\/code>\nExample: <code>lambda x: x * 2<\/code> returns <code>2x<\/code>.<\/p>\n\n\n\n<p><strong>Q48. How is memory managed in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Python manages memory using private heaps and a built-in garbage collector. Variables are references to objects stored in memory. Reference counting and cyclic garbage collection help clean up unused objects.<\/p>\n\n\n\n<p><strong>Q49. What is the difference between <code>deepcopy()<\/code> and <code>copy()<\/code> in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>copy()<\/code> creates a shallow copy \u2014 it copies the outer object but not nested objects. <code>deepcopy()<\/code> creates a full independent copy of the object, including all nested elements. Useful for complex structures.<\/p>\n\n\n\n<p><strong>Q50. How do you remove duplicates from a list in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">You can convert the list to a set and back:\n<code>unique = list(set(my_list))<\/code>\nNote: this may change order. For order-preserving:\n<code>unique = list(dict.fromkeys(my_list))<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"python-error-handling\"><strong>Python Error Handling &amp; Debugging<\/strong><\/h2>\n\n\n\n<p><strong>Q51. What is exception handling in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Exception handling lets you manage unexpected errors without crashing the program. You use <code>try<\/code>, <code>except<\/code>, <code>finally<\/code>, and optionally <code>else<\/code> to catch and handle exceptions. It helps in building robust applications with cleaner error recovery logic.<\/p>\n\n\n\n<p><strong>Q52. What is the difference between <code>Exception<\/code> and <code>BaseException<\/code>?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>BaseException<\/code> is the top-level class for all exceptions. <code>Exception<\/code> is a subclass of <code>BaseException<\/code> and typically used for most standard error handling. <code>BaseException<\/code> includes exceptions like <code>SystemExit<\/code> and <code>KeyboardInterrupt<\/code> that are usually not caught.<\/p>\n\n\n\n<p><strong>Q53. How does the <code>finally<\/code> block work in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">The <code>finally<\/code> block runs no matter what\u2014whether an exception occurs or not. It&#8217;s mainly used for cleanup actions like closing files, releasing resources, or logging, ensuring that the necessary steps run regardless of error.<\/p>\n\n\n\n<p><strong>Q54. Can you have multiple <code>except<\/code> blocks in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Yes, Python allows multiple <code>except<\/code> blocks for handling different exception types. This enables precise error handling for each case:\n<code>\ntry:<br>\n&nbsp;&nbsp;# code<br>\nexcept ValueError:<br>\n&nbsp;&nbsp;# handle ValueError<br>\nexcept TypeError:<br>\n&nbsp;&nbsp;# handle TypeError\n<\/code><\/p>\n\n\n\n<p><strong>Q55. What is a traceback in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">A traceback shows the call stack when an exception occurs. It lists the exact line numbers and function calls that led to the error, helping developers identify the problem location quickly. Tracebacks are invaluable for debugging.<\/p>\n\n\n\n<p><strong>Q56. How do you raise a custom exception in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">You can define a custom exception by subclassing <code>Exception<\/code> and raising it using the <code>raise<\/code> keyword:\n<code>\nclass MyError(Exception):<br>\n&nbsp;&nbsp;pass<br>\nraise MyError(\"Something went wrong\")\n<\/code><\/p>\n\n\n\n<p><strong>Q57. What\u2019s the role of the <code>assert<\/code> statement in debugging?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>assert<\/code> checks if a condition is true during development. If it fails, it raises an <code>AssertionError<\/code>. It&#8217;s helpful for catching bugs early, especially in unit tests or during prototyping. Avoid using it for production-level error handling.<\/p>\n\n\n\n<p><strong>Q58. How do you handle multiple exceptions in one block?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">You can catch multiple exceptions in a single <code>except<\/code> clause by passing a tuple of exceptions:\n<code>\ntry:<br>\n&nbsp;&nbsp;# risky code<br>\nexcept (ValueError, TypeError):<br>\n&nbsp;&nbsp;# handle both exceptions\n<\/code><\/p>\n\n\n\n<p><strong>Q59. What is the difference between <code>raise<\/code> and <code>assert<\/code>?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\"><code>raise<\/code> is used for intentionally triggering exceptions in your code, even in production. <code>assert<\/code> is mainly for debugging \u2014 it checks for developer-defined conditions and raises an error if the condition fails. <code>assert<\/code> can be disabled with Python\u2019s <code>-O<\/code> flag.<\/p>\n\n\n\n<p><strong>Q60. How can you log errors in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Use Python\u2019s built-in <code>logging<\/code> module to log errors. It offers levels like DEBUG, INFO, WARNING, ERROR, and CRITICAL. Example:\n<code>\nimport logging<br>\nlogging.error(\"This is an error message\")\n<\/code>\nLogging is more flexible and production-safe than print statements.<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"border-radius:6px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><strong>Quick Checklist: Are You Ready for Python Interviews?<\/strong><\/p>\n\n\n\n<ol style=\"background-color:#fbfbc6\" class=\"wp-block-list has-background\">\n<li><strong>Basic Concepts<\/strong>: Can you explain data types, loops, and conditionals clearly?<\/li>\n\n\n\n<li><strong>OOP Skills<\/strong>: Are you confident with classes, inheritance, and dunder methods?<\/li>\n\n\n\n<li><strong>Built-in Functions<\/strong>: Do you know how <code>map()<\/code>, <code>filter()<\/code>, <code>zip()<\/code>, and <code>lambda<\/code> work?<\/li>\n\n\n\n<li><strong>Exception Handling<\/strong>: Are you comfortable using <code>try-except-finally<\/code> and raising custom errors?<\/li>\n\n\n\n<li><strong>Debugging &amp; Profiling<\/strong>: Do you know tools like <code>pdb<\/code>, <code>cProfile<\/code>, and <code>logging<\/code>?<\/li>\n\n\n\n<li><strong>Data Structures<\/strong>: Can you compare lists, sets, dicts, and tuples with examples?<\/li>\n\n\n\n<li><strong>Code Style<\/strong>: Are you following PEP8 guidelines and writing readable code?<\/li>\n\n\n\n<li><strong>Real-World Applications<\/strong>: Do you have examples of solving performance or memory issues?<\/li>\n<\/ol>\n\n\n\n<p>\u2705 If you\u2019ve checked off most of the above \u2014 you&#8217;re in solid shape. Now let\u2019s test your readiness with real-world scenarios \u2b07\ufe0f<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-background\" id=\"python-real-world\" style=\"background-color:#b4e2ff\"><strong>Scenario-Based &amp; Real-World Python Questions<\/strong><\/h2>\n\n\n\n<p><strong>Q61. How would you optimise a Python script that takes too long to run?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Start by profiling the code using <code><strong>cProfile<\/strong><\/code> or <code><strong>timeit<\/strong><\/code> to identify bottlenecks. Look for nested loops, redundant calculations, or expensive I\/O operations. Consider using built-in functions, list comprehensions, and libraries like NumPy or Pandas for speed. Also, check if parallelisation via multiprocessing or threading makes sense for your case.<\/p>\n\n\n\n<p><strong>Q62. You\u2019re dealing with a large JSON file. How would you parse it efficiently in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Avoid loading the entire file with <code><strong>json.load()<\/strong><\/code> if it&#8217;s large. Instead, use a streaming parser like <code><strong>ijson<\/strong><\/code> that reads the file in chunks. This avoids memory overflow and keeps processing efficient, especially for log files, APIs, or event streams.<\/p>\n\n\n<p><strong>Q63. How would you handle database connections in a Python web app?<\/strong><\/p>\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Use a connection pool (like SQLAlchemy\u2019s pooling mechanism or Django\u2019s ORM) to avoid creating new connections repeatedly. Wrap all DB calls in <code><strong>try-except<\/strong><\/code> blocks and ensure connections are closed using context managers or a <code>finally<\/code> block. Always parameterise queries to prevent SQL injection.<\/p>\n\n\n\n<p><strong>Q64. Describe a scenario where using a generator is better than a list.<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Generators are ideal when you&#8217;re processing large data sets one item at a time. For example, reading lines from a 10GB log file using a generator avoids loading the entire file into memory, which a list would do. Generators are memory-efficient and lazy-loaded.<\/p>\n\n\n\n<p><strong>Q65. Your API response times are slow. How would you diagnose it in Python?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Use profiling tools like <code>cProfile<\/code> to measure request handling time. Add logging timestamps before and after each major function. For network calls, try <code>requests.Session()<\/code> and consider enabling connection reuse. If the backend is slow, explore async patterns with <code>asyncio<\/code> or <code>httpx<\/code>.<\/p>\n\n\n\n<p><strong>Q66. How do you ensure your Python code is production-ready?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Production-ready code includes exception handling, logging, modular structure, and unit tests. Use linting tools like <code>pylint<\/code> or <code>flake8<\/code>, package with virtual environments or Docker, and automate testing via CI\/CD pipelines. Also, document APIs and modules properly.<\/p>\n\n\n\n<p><strong>Q67. You need to process a million records from a CSV file. What would be your approach?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Avoid loading the full CSV with <code>read_csv()<\/code>. Instead, use <code>pandas.read_csv(..., chunksize=10000)<\/code> or the <code>csv<\/code> module\u2019s streaming reader. Process each chunk and release memory after use. This keeps memory usage flat regardless of file size.<\/p>\n\n\n\n<p><strong>Q68. How would you debug a memory leak in a Python application?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Use the <code>gc<\/code> module to identify uncollected objects. Tools like <code>objgraph<\/code> or <code>memory_profiler<\/code> help inspect reference chains. Common issues include lingering global references, circular dependencies, or unused cache. Fix by releasing references explicitly or using weak references.<\/p>\n\n\n\n<p><strong>Q69. How do you secure sensitive credentials in a Python application?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">Never hardcode credentials. Use environment variables loaded via <code>os.environ<\/code> or a config manager like <code>python-dotenv<\/code>. For production apps, prefer using secret managers like AWS Secrets Manager or HashiCorp Vault to rotate and store sensitive keys.<\/p>\n\n\n\n<p><strong>Q70. Describe a Python project where you improved performance or scalability.<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">In a data scraping project, I switched from sequential scraping using <code>requests<\/code> to asynchronous scraping with <code>aiohttp<\/code> and <code>asyncio<\/code>. This reduced the overall runtime from 45 minutes to under 10. I also implemented caching using Redis to avoid redundant API calls.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ffdeed\"><strong>Read: <a href=\"https:\/\/www.foundit.sg\/career-advice\/web-stories\/most-asked-python-coding-interview-questions\/\" target=\"_blank\" rel=\"noreferrer noopener\">Most Asked Python Coding Interview Questions<\/a><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>71. How would you optimise a Python script that is taking too long to process large datasets?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nStart by identifying the bottlenecks. Use <code>cProfile<\/code> or <code>line_profiler<\/code> to see where the most time is spent. Then:\n<ul>\n<li>Switch to list comprehensions or generators to improve performance.<\/li>\n<li>Apply <code>functools.lru_cache<\/code> to cache repetitive calls.<\/li>\n<li>Leverage NumPy\/Pandas for efficient data manipulation.<\/li>\n<li>Use multiprocessing or concurrent.futures for parallel processing.<\/li>\n<\/ul>\nTweak based on real profiling \u2014 not guesswork.\n<\/p>\n\n\n\n<p><strong>72. How do you debug a Python application that randomly crashes in production?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nStart by enabling detailed logs using the <code>logging<\/code> module. Wrap unstable code blocks in try-except and log stack traces. Add <code>faulthandler<\/code> to capture low-level faults. Use tools like <code>memory_profiler<\/code> and <code>objgraph<\/code> to catch leaks. Reproduce the issue in staging if possible to trace the root cause step-by-step.\n<\/p>\n\n\n\n<p><strong>73. How would you handle 100,000+ concurrent user requests in a Python-based backend?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nUse asynchronous frameworks like FastAPI or Aiohttp. Implement:\n<ul>\n<li>Worker-based deployment (Gunicorn\/Uvicorn with multiple workers)<\/li>\n<li>Redis\/Memcached caching for frequent reads<\/li>\n<li>Celery for background job queuing<\/li>\n<li>Nginx as reverse proxy and load balancer<\/li>\n<li>Containerisation (Docker\/Kubernetes) for scaling<\/li>\n<\/ul>\nOptimise both code and infra.\n<\/p>\n\n\n<p><!-- Q74 --><\/p>\n<p><strong>74. How do you prevent SQL injection in Python web apps?<\/strong><\/p>\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nAlways use parameterised queries. Example:<br>\n<code>cursor.execute(\"SELECT * FROM users WHERE id = %s\", (user_id,))<\/code><br>\nBetter still, use an ORM like SQLAlchemy or Django ORM. Validate all user inputs and limit database privileges to minimise damage in case of an exploit.\n<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>75. What would you do if your code works in local but breaks in production?<\/strong><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c4c6c845\">\nCheck for environment mismatches: Python version, OS, installed packages. Use <code>pip freeze<\/code> or <code>poetry.lock<\/code> to ensure dependency parity. Audit environment variables and config files. Enable verbose logging in prod and test environments. Use Docker to standardise deployments and CI pipelines to catch environment-specific issues early.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faqs\">Frequently Asked Questions on Python Developer Interviews<\/h2>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background-color:#ABB7C245;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;border-radius:6px\">\n\n  <details>\n    <summary><strong>\ud83d\udd3d What is the best way to prepare for Python interviews?<\/strong><\/summary>\n    <div>\n      Focus on core Python syntax, object-oriented programming, real-world debugging, and writing clean, testable code. Practise problems on LeetCode, InterviewBit, or Hackerrank and revise patterns from past interviews.\n    <\/div>\n  <\/details>\n\n  <details>\n    <summary><strong>\ud83d\udd3d How important are Python frameworks in interviews?<\/strong><\/summary>\n    <div>\n      For freshers, frameworks aren\u2019t mandatory. But for experienced roles, knowledge of Django, Flask, or FastAPI is a plus, especially for backend and full-stack roles.\n    <\/div>\n  <\/details>\n\n  <details>\n    <summary><strong>\ud83d\udd3d Should I memorise Python syntax before an interview?<\/strong><\/summary>\n    <div>\n      Not required. Interviewers focus more on logic, structure, and problem-solving than rote syntax. But being comfortable writing code without auto-suggestions is expected.\n    <\/div>\n  <\/details>\n\n  <details>\n    <summary><strong>\ud83d\udd3d What Python topics are frequently asked for freshers?<\/strong><\/summary>\n    <div>\n      Focus on data types, loops, conditionals, functions, string operations, list\/dict manipulations, and exception handling. Basic OOP concepts like class, object, and inheritance are also common.\n    <\/div>\n  <\/details>\n\n  <details>\n    <summary><strong>\ud83d\udd3d How many projects should I list on my Python resume?<\/strong><\/summary>\n    <div>\n      Two well-explained, end-to-end projects are better than five small ones. Highlight the problem solved, tools used, and your role. GitHub links are a bonus.\n    <\/div>\n  <\/details>\n\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most Python interviews don\u2019t test your memory, they test how well you think. If you&#8217;re preparing for a Python developer role in 2026, expect a mix of practical, syntax-based, and situational questions. This list includes the most asked Python interview questions that show up in coding rounds, HR panels, and tech discussions. Whether you\u2019re a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":48405,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[147],"tags":[],"class_list":{"0":"post-19317","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-interview-questions"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/posts\/19317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/comments?post=19317"}],"version-history":[{"count":9,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/posts\/19317\/revisions"}],"predecessor-version":[{"id":48409,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/posts\/19317\/revisions\/48409"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/media\/48405"}],"wp:attachment":[{"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/media?parent=19317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/categories?post=19317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.foundit.sg\/career-advice\/wp-json\/wp\/v2\/tags?post=19317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}