Python Exercise: Access a function inside a function
Python Functions: Exercise - 19 with Solution
Write a Python program to access a function inside a function.
Sample Solution:
Python Code:
# Define a function named 'test' that takes a parameter 'a'
def test(a):
# Define a nested function 'add' that takes a parameter 'b'
def add(b):
# Declare 'a' from the outer scope as nonlocal to modify its value
nonlocal a
# Increment the value of 'a' by 1
a += 1
# Return the sum of 'a' (modified by the nonlocal statement) and 'b'
return a + b
# Return the inner function 'add' and its scope is retained due to closure
return add
# Call the 'test' function with an argument '4' and assign the returned function to 'func'
func = test(4)
# Call the function 'func' with argument '4' and print the result
print(func(4))
Sample Output:
9
Explanation:
In the exercise above the code defines nested functions and the usage of the 'nonlocal' keyword. The function "test(a)" defines a nested function "add(b)" that takes an argument 'b'. Within "add(b)", the 'nonlocal' keyword is used to modify the variable 'a' from the outer scope. The outer function "test(a)" returns the inner function "add(b)", and this returned function is assigned to the variable 'func'. Finally, it calls the function 'func' with an argument '4' and prints the result. This involves modifying the nonlocal variable 'a' and performing addition with the argument passed to 'func'.
Flowchart:
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to execute a string containing Python code.
Next: Write a Python program to detect the number of local variables declared in a function.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/python-functions-exercise-19.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics