嵌套&匿名&高阶函数

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 返回另外一个函数

原文地址:https://www.cnblogs.com/zrxu/p/11578103.html