高阶函数
一等公民
函数在Python是一等公民(First-Class Object)
函数也是对象,是可调用对象
函数可以作为普通变量,也可以作为函数的参数、返回值
高阶函数
高阶函数(High-order Function)
数学概念 y = f(g(x))
在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数
接受一个或多个函数作为参数
输出一个函数
观察下面的函数定义,回答问题
def counter(base):
def inc(step=1):
base += step
return base
return inc
请问counter是不是高阶函数
上面代码有没有问题?如果有,如何改进
如何调用以完成计数功能
f1 = counter(5)和f2=counter(5),请问f1和f2相等吗?
练习:自定义sort函数
仿照内建函数sorted,请自行实现一个sort函数(不用使用内建函数),能够为列表元素排序
思考:通过练习,思考sorted函数的实现原理,map、filter函数的实现原理
思路:
内建