译者:麦叔
下期应一名老影迷的明确要求–一分钟讲透甚么是反弹表达式(Callback Function)。
❞
表述
把表达式的操作符(门牌号)做为HTA给另两个表达式,当那个操作符被用以初始化其所对准的函数时,这是反弹表达式。反弹表达式并非由该表达式的同时实现方间接初始化,而要在某一的该事件或前提出现时由除此之外的另一方初始化的,用作对该该事件或前提展开积极响应。
「把下面艰涩的基本概念串起一句话是:」
❝
反弹表达式是两个被做为参数传递的表达式。
❞
举红豆
花边楼标识符写个打印机机能的表达式,
def calculator(v1,v2,fn): result = fn(v1,v2) return result但是那个打印机啥机能也没有,1+1也不会算。
再写个add表达式求两数之和,
def calculator(v1,v2,fn): result = fn(v1,v2) return result def add(v1,v2): return v1 + v2 # 调用calculator,计算1+1 print(calculator(1,1,add))输出结果:
2上述标识符中的add表达式就被称为calculator的反弹表达式。
是并非还是蛮简单?
❝
那还不把减、乘、除的反弹表达式写了,增加印象?
❞
反弹表达式和递归表达式的区别
反弹表达式是在两个表达式中“反弹表达式”以参数的形式传入,并在该表达式内部被初始化。
而递归表达式是在两个表达式中,初始化了自己。
反弹表达式和高阶表达式的区别
还记得前几期出现的高阶表达式么?反弹表达式是并非还蛮像它的?
回顾下高阶表达式的表述,
❝
Python的高阶表达式其实是接受表达式为参数,或者把表达式做为结果返回的表达式是高阶表达式(higher-order function)。
❞
而反弹表达式的表述
❝
反弹表达式是两个被做为HTA的表达式。
❞
有没有感受其中的奥妙??
def calculator(v1,v2,fn): result = fn(v1,v2) return result def add(v1,v2): return v1 + v2下面的标识符中,
calculator是高阶表达式,而add是反弹表达式。
再细品下~
最后
感谢这位影迷的持续关注,不知道今天的文章是否对你有所帮助?