首页 > 代码库 > python嵌套函数

python嵌套函数

1、嵌套函数定义

在python中有一种特殊函数,这种函数定义在函数的内部,像这样定义在其他函数内的函数叫做内部函数,内部函数所在的函数叫做外部函数。我们还可以定义多层嵌套函数,即内部函数定义一个内部函数。内部函数定义很简单,同样使用def定义,只是定义在一个函数的内部,举个例子:

>>> var=90
>>> def test():
def nest():
global var
print(var)
var+=1
return nest


>>> test()()
90


这里要注意执行时是test()(),而不是test().nest(),这是因为test()返回了一个nest,然后执行nest()。

2、讨论嵌套函数的作用域

内部函数可以使用外部函数定义的变量,例如:

def f():
def f1():
x=3
print ("目前在函数f1()中:x=", x)
def f2():
print ("目前在函数f2()中:x=", x)
return f2
return f1

>>> f()()()

目前在函数f1()中:x= 3

目前在函数f2()中:x= 3

>>> def f():

def f1():

x=3

print ("目前在函数f1()中:x=", x)

def f2():

x+=5

print ("目前在函数f2()中:x=", x)

return f2

return f1


>>> f()()()

目前在函数f1()中:x= 3

Traceback (most recent call last):

  File "<pyshell#47>", line 1, in <module>

    f()()()

  File "<pyshell#46>", line 6, in f2

    x+=5

UnboundLocalError: local variable ‘x‘ referenced before assignment