自从搞懂了回调函数,我对Python的理解上了一个台阶

2022-12-18 0 929

自从搞懂了回调函数,我对Python的理解上了一个台阶

译者:麦叔

下期应一名老影迷的明确要求–一分钟讲透甚么是反弹表达式(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是反弹表达式。

再细品下~

最后

感谢这位影迷的持续关注,不知道今天的文章是否对你有所帮助?

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务