def outer():
x = 10
def inner():
nonlocal x
x += 5
print("Inner:", x)
inner()
print("Outer:", x)
outer()
Solution and Explanation
This code demonstrates nested functions in Python, along with the use of the nonlocal keyword.
Here's a breakdown of what each part does:
def outer():: This line defines a function named outer.
x = 10: Inside the outer function, a variable x is initialized with the value 10.
def inner():: Inside the outer function, another function named inner is defined.
nonlocal x: This statement inside the inner function tells Python that the variable x being referenced is not local to the inner function but belongs to the enclosing scope (which is the outer function in this case).
x += 5: Inside the inner function, x is incremented by 5.
print("Inner:", x): This line prints the value of x from the inner function after it has been incremented.
inner(): This line calls the inner function from within the outer function.
print("Outer:", x): After the inner function call, the value of x within the outer function is printed. Since x was modified within the inner function using the nonlocal keyword, its value will reflect the increment done inside the inner function.
outer(): Finally, the outer function is called, which executes the code inside it and its nested inner function.
When you run outer(), it will print:
Inner: 15
Outer: 15
This output shows that the inner function has successfully modified the value of x, and the change is reflected in the outer function as well.
0 Comments:
Post a Comment