Python回调函数的实现

您所在的位置:网站首页 python3回调函数 Python回调函数的实现

Python回调函数的实现

2024-05-01 09:07| 来源: 网络整理| 查看: 265

本文介绍Python中的"回调"(huidiao),以及回调的实现方法和步骤.

一、回调函数介绍:

回调函数就是一个通过函数名调用的函数。如果你把函数的名字(地址)作为参数传递给另一个函数,当这个参数被用来调用其所指向的函数时,我们就说这是回调函数.

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应.

上面是对回调函数的描述和解释,概念往往都显得生涉拗口,不易理解.

简单来说,我们可以这样理解回调,A实现了A1函数和A3函数,B实现了B2函数,B2函数接收一个函数名字作为参数,然后在B2内执行这个函数.

在实际应用时,A1函数调用了B2,B2函数接收函数A3作为参数,在B2内部执行A3函数,A3就是回调函数.

二、代码实现:

-callback_A.py

代码语言:javascript复制from callback_B import trade_meeting def trade_cn_us(): """大大赴美,中美贸易磋商""" print() print("---++ 准备行程,大大赴美 ++---") trade_meeting(ready_info) print("---++ 会谈结束,带喜讯回国 ++---") def ready_info(): """准备商谈内容""" print() print("---++ 会议中提出要求 ++---") print() if __name__ == '__main__': trade_cn_us()

-callback_B.py

代码语言:javascript复制def trade_meeting(callback_func): """贸易会谈并签署协议""" print() print("---++ 与特朗普开始会谈 ++---") callback_func() print("---++ 会谈结束签署协议 ++---") print()

这个例子以中美贸易磋商作为示例:

在callback_A.py中实现了赴美进行贸易磋商并回国的函数trade_cn_us(),准备商谈资料(收集民众要求)的函数ready_info().

在callback_B.py中实现了在美国召开会议并签署协议的函数trade_meeting(callback_func).

可以理解为callback_A.py中实现的方法是在中国做的事情, callback_B.py中实现的方法是在美国做的事情(与现实的逻辑符合).

要实现赴美完成贸易磋商并回国的业务逻辑, trade_cn_us()调用了trade_meeting(callback_func), 在美国进行贸易会议时,需要调用国内准备会议资料的函数ready_info(), 用ready_info函数的名字作为参数传递给trade_meeting(),然后在trade_meeting()中执行.

这时候的ready_info()就是回调函数

三、运行结果:

代码语言:javascript复制---++ 准备行程,大大赴美 ++--- ---++ 与特朗普开始会谈 ++--- ---++ 会议中提出要求 ++--- ---++ 会谈结束签署协议 ++--- ---++ 会谈结束,带喜讯回国 ++---

四、两个类之间的回调:

上面的回调是在两个不同的python文件中实现的,在面向对象编程中,两个不同的类之间也可以实现回调,参考代码如下:

代码语言:javascript复制class China(object): """国内事项""" def trade_cn_us(self): """大大赴美,中美贸易磋商""" print() print("---++ 准备行程,大大赴美 ++---") us = American() us.trade_meeting(self.ready_info) print("---++ 会谈结束,带喜讯回国 ++---") def ready_info(self): """准备商谈内容""" print() print("---++ 会议中提出要求 ++---") print() class American(object): """美国事项""" def trade_meeting(self, callback_func): """贸易会谈并签署协议""" print() print("---++ 与特朗普开始会谈 ++---") callback_func() print("---++ 会谈结束签署协议 ++---") print() if __name__ == '__main__': cn = China() cn.trade_cn_us()

这就是使用Python实现回调函数的过程,当有适合的需求场景时,按上面的方法即可实现~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3