嵌套函数,匿名函数,高阶函数

嵌套函数

就是在函数里再定义一个函数

# 1,函数内部可以在定义函数
# 2,函数要想执行,必须要先被调用
def name1():
    print('kk')
    def name2():
        print('vfx')
    name2()
name1()

输出:
kk
vfx
name2 现在他内部代码找输出,如果没有变量,就会往上一个层级去找,最后找全局,比如

def name1():
    age = 22
    print(age)
    def name2():
      #  age = 34
        print(age)
    name2()
name1()

输出 22,22

匿名函数

就是没有名字的函数

# 函数
def calc(x,y):
    return x**y
# 匿名
lambda x,y:x**y   # 声明一个匿名函数

函数与匿名函数的区别
有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能
匿名函数:一次性使用,随时随时定义,不能用做复杂的计算。(比如 if)

匿名函数给了名字之后,也可以调用

def calc(x,y):
    return x**y

func = lambda x,y:x**y

print(calc(2,3))
print(func(2,3))  # 输出结果是一样的,这样就没有意义了

高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称为高阶函数

def calc():
    return x**x
n = 2    # 函数的参数能接收变量    
f =calc(n)   # 变量指向函数
calc(n)

只需要满足以下任意条件,就是高阶函数
- 接受一个或多个函数作为输入
- return返回另一个函数
posted @ 2019-04-28 15:49  海岛cc  阅读(298)  评论(0编辑  收藏  举报