Python lets you define a function inside another function. The inner function can read variables of the outer function, because name lookup follows the LEGB rule: Local, then Enclosing function scopes, then Global, then Built-in. A closure is created when the outer function returns the inner function and the inner one still uses variables from the outer scope. Even though the outer function has finished, the returned function keeps those variables alive and can use them whenever it is called.
Keep reading for free
Create a free StudyToCert account to read the rest of this lesson: 7 more sections, 4 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.