mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
Test interaction of global and nested scopes -- thanks to Samuele Pedroni.
This commit is contained in:
parent
7606e4d00e
commit
9aa643cf69
2 changed files with 66 additions and 0 deletions
|
|
@ -13,3 +13,4 @@ test_scope
|
|||
12. lambdas
|
||||
13. UnboundLocal
|
||||
14. complex definitions
|
||||
15. scope of global statements
|
||||
|
|
|
|||
|
|
@ -318,3 +318,68 @@ def makeAddPair((a, b)):
|
|||
return addPair
|
||||
|
||||
verify(makeAddPair((1, 2))((100, 200)) == (101,202))
|
||||
|
||||
print "15. scope of global statements"
|
||||
# Examples posted by Samuele Pedroni to python-dev on 3/1/2001
|
||||
|
||||
# I
|
||||
x = 7
|
||||
def f():
|
||||
x = 1
|
||||
def g():
|
||||
global x
|
||||
def i():
|
||||
def h():
|
||||
return x
|
||||
return h()
|
||||
return i()
|
||||
return g()
|
||||
verify(f() == 7)
|
||||
verify(x == 7)
|
||||
|
||||
# II
|
||||
x = 7
|
||||
def f():
|
||||
x = 1
|
||||
def g():
|
||||
x = 2
|
||||
def i():
|
||||
def h():
|
||||
return x
|
||||
return h()
|
||||
return i()
|
||||
return g()
|
||||
verify(f() == 2)
|
||||
verify(x == 7)
|
||||
|
||||
# III
|
||||
x = 7
|
||||
def f():
|
||||
x = 1
|
||||
def g():
|
||||
global x
|
||||
x = 2
|
||||
def i():
|
||||
def h():
|
||||
return x
|
||||
return h()
|
||||
return i()
|
||||
return g()
|
||||
verify(f() == 2)
|
||||
verify(x == 2)
|
||||
|
||||
# IV
|
||||
x = 7
|
||||
def f():
|
||||
x = 3
|
||||
def g():
|
||||
global x
|
||||
x = 2
|
||||
def i():
|
||||
def h():
|
||||
return x
|
||||
return h()
|
||||
return i()
|
||||
return g()
|
||||
verify(f() == 2)
|
||||
verify(x == 2)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue