From: Guido van Rossum Date: Thu, 1 Mar 2001 20:35:45 +0000 (+0000) Subject: Test interaction of global and nested scopes -- thanks to Samuele Pedroni. X-Git-Tag: v2.1b1~58 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9aa643cf6909170d31cfff955318ea7317234663;p=python Test interaction of global and nested scopes -- thanks to Samuele Pedroni. --- diff --git a/Lib/test/output/test_scope b/Lib/test/output/test_scope index 0535e2664f..5d41e8c384 100644 --- a/Lib/test/output/test_scope +++ b/Lib/test/output/test_scope @@ -13,3 +13,4 @@ test_scope 12. lambdas 13. UnboundLocal 14. complex definitions +15. scope of global statements diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py index b4c492aa97..0633b1433f 100644 --- a/Lib/test/test_scope.py +++ b/Lib/test/test_scope.py @@ -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)