Nested Scopes

Nested scopes clean a few things up

  • Python 2.1:
     def make_adder(x):
         def adder(n):
             return x+n
         return adder
     
     add2 = make_adder(2)
     print add2(4)         # Prints '6'
  • Older versions (default argument hack)
     def make_adder(x):
         def adder(n, x=x):   # x set as default argument
             return x + n
         return adder
     add2 = make_adder(2)
     print add2(4)
<<< O'Reilly OSCON 2001, New Features in Python 2, Slide 19
July 26, 2001, beazley@cs.uchicago.edu
>>>