嵌套&匿名&高阶函数

筅森魡賤 提交于 2019-11-30 10:12:22

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!