tests/basics: Add further tests for nonlocal scoping and closures.
This commit is contained in:
parent
0d10517a45
commit
6cf2a3966e
@ -19,3 +19,25 @@ def f():
|
|||||||
g()
|
g()
|
||||||
return a
|
return a
|
||||||
print(f())
|
print(f())
|
||||||
|
|
||||||
|
# nonlocal at inner-inner level (h)
|
||||||
|
def f():
|
||||||
|
x = 1
|
||||||
|
def g():
|
||||||
|
def h():
|
||||||
|
nonlocal x
|
||||||
|
return x
|
||||||
|
return h
|
||||||
|
return g
|
||||||
|
print(f()()())
|
||||||
|
|
||||||
|
# nonlocal declared at outer level (g), and referenced by inner level (h)
|
||||||
|
def f():
|
||||||
|
x = 1
|
||||||
|
def g():
|
||||||
|
nonlocal x
|
||||||
|
def h():
|
||||||
|
return x
|
||||||
|
return h
|
||||||
|
return g
|
||||||
|
print(f()()())
|
||||||
|
Loading…
Reference in New Issue
Block a user