嵌套函数
就是在函数里再定义一个函数
# 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返回另一个函数