﻿ Python Exercise: Access a function inside a function - w3resource

# 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'
# 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

# 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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿