dketov
12/13/2011 - 2:28 PM

Вложенные определения функций

Вложенные определения функций

# -*- encoding: utf-8 -*-
"""
Вложенные определения функций
"""

def f1():
    x = 88
    def f2(x=x):
        print x
    f2()

f1()                  # prints 88
def f1():
     x = 99
     def f2():
         def f3():
             print x       
         f3()
     f2()

f1()

def func():
    x = 4
    action = (lambda n: x ** n)          # x in enclosing def
    return action

x = func()
print x(2) # prints 16