Python,函数嵌套,到底是个什么东东?
很少有人用,但是,有时确实会用:
- def multiplier(factor):
- def multiplyByFactor(number):
- return number*factor
- return multiplyByFactor
python
程序,
一个函数在另外一个函数的里面,外层的函数返回的是里层函数。也就是函数本身被返回了
,返回的是函数(听起来和C语言的一些东东相似)。
注意,返回的函数还可以访问它的定义所在的作用域,也就是它带着它的环境信息奥。
看看下面的用法,就会有被水浇的感觉了:
- >>>double = multiplier(2)
- >>>double(5)
- 10
-
- >>>triple=multiplier(3)
- >>>triple(3)
- 9
-
- >>>multiplier(5)(4)
- >>>20
每次调用外层函数,它内部的函数都会被重新绑定,factor变量每次都有一个新的值。
以上内容摘抄自《python基础教程》