From 9aa643cf6909170d31cfff955318ea7317234663 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 1 Mar 2001 20:35:45 +0000 Subject: Test interaction of global and nested scopes -- thanks to Samuele Pedroni. --- Lib/test/output/test_scope | 1 + Lib/test/test_scope.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/Lib/test/output/test_scope b/Lib/test/output/test_scope index 0535e26..5d41e8c 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 b4c492a..0633b14 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) -- cgit v0.12