Nested Functions
Swipe to show menu
When you want to organize your code for better readability, encapsulation, or reuse, you can define a function inside another function. These are called nested functions. In Python, you create a nested function by writing one function definition inside the body of another. This lets you hide helper logic that should not be accessible from outside, or generate specialized functions on the fly.
The syntax for a nested function is straightforward: simply place a def statement within the body of another def. The inner function can access variables from the enclosing function, which is useful for creating customized behaviors or helper computations that rely on the outer function's arguments.
A practical use of nested functions is to return a function that is customized with parameters from the outer function. This is often used in functional programming to generate specialized functions or to encapsulate logic that should not pollute the global scope.
1234567891011def make_multiplier(factor): # 'multiplier' function is nested inside 'make_multiplier' def multiplier(x): return x * factor return multiplier double = make_multiplier(2) triple = make_multiplier(3) print(double(5)) print(triple(4))
1. Why might you define a function inside another function?
2. What is the scope of a variable defined in an enclosing function?
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat