python-装饰器-高阶函数
一、知识点
【1】函数是最高级的对象
【2】函数名可以赋值给别的变量
【3】函数赋值的时候不加上(),就不会执行函数
def foo():
print('f函数输出')
# 将foo函数名赋值给变量a,此时a具有foo函数的特性
a = foo
print(a) # <function foo at 0x100d63eb0>
# 执行函数
a() # f函数输出
【4】函数可以当作参数传递
# func可以是函数名,不加上括号表示函数名入参,不会执行函数
def foo1(func):
# 执行入参函数
func()
def foo2():
print('函数是最高级的对象')
foo1(foo2) # 函数是最高级的对象
【5】函数可以作为返回值
def foo3():
def foo4():
print('函数可以作为返回值')
return foo4
# 执行函数foo3(),得到返回值函数名foo4
a = foo3()
# 执行foo4()函数
a()