嵌套&匿名&高阶函数
1、嵌套函数
name = "xu是帅哥" def func1(): name = "xu是大帅哥" def func2(): name = "xu是非常帅的" print("第三层name:", name) func2() print("第二层name:", name) func1() print("第一层name:", name)
打印结果:第三层name: xu是非常帅的
第二层name: xu是大帅哥
第一层name: xu是帅哥
由此可以看出,每个函数里面的变量都是相互独立的,变量查找顺序由里到外
2、匿名函数
calc = lambda x,y:x**y print(calc(2,5))
打印结果:32
3、高阶函数
变量可以指向函数,函数的参数能够接收变量,那么一个函数就可以接收另一个函数作为参数。
def add(a,b): ret = a + b return ret def multiplication(c, d, func): return func(c,d) * func(c,d) print(multiplication(2, 5, add))
打印结果:49
高阶函数满足以下任意一个条件:
1、接收一个或多个函数
2、return 返回另外一个函数