首页 > 代码库 > 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。