一个函数位于另一个里面,外层函数返回里层函数。也就是说函数本身返回了————但并没有被调用。重要的是返回的函数还可以访问它的定义所在的作用域。
- def multiplier(factor):
- def multiplyByFactor(number):
- return number*factor
- return multiplyByFactor
- >>>double = multiplier(2) # return multiplyByFactor() and set factor=2
- >>>double(5) # call multiplyByFactor(5) and number=5, factor=2
- 10
类似multiplyByFactor函数存储子封闭作用域的行为叫做闭包(closure)
转载于:https://blog.51cto.com/whithin/1065530