广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的回调函数怎么使用
  • 881
分享到

Python中的回调函数怎么使用

2023-07-02 12:07:05 881人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python中的回调函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的回调函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。摘要主要是介绍python 的

本文小编为大家详细介绍“python中的回调函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的回调函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    摘要

    主要是介绍python 的回调函数callback。

    什么是回调函数

    当程序运行是,一般情况下,应用程序会时常通过api调用库里所预先备好的函数。但是有些库函数却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)

    例如:

    有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。这里,“叫醒”这个行为是旅馆提供的,相当于库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数。而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数(to reGISter a callback function)

    可以看到,回调函数通常和应用处于同一抽象层(因为传入什么样的回调函数是在应用级别决定的)。而回调就成了一个高层调用底层,底层再回过头来调用高层的过程。(我认为)这应该是回调最早的应用之处,也是其得名如此的原因。

    Python中的回调函数怎么使用

    回调机制的优势

    回调机制提供了非常大的灵活性。我们把图中的库函数改称为中间函数了,这是因为回调并不仅仅用在应用和库之间。任何时候,只要想获得类似于上面情况的灵活性,都可以利用回调。有的同学可定想回调似乎只是函数间的调用,可以发现两者之间的一个关键的不同

    在回调中,我们利用某种方式,把回调函数像参数一样传入中间函数。可以这么理解,在传入一个回调函数之前,中间函数是不完整的。换句话说,程序可以在运行时,通过登记不同的回调函数,来决定、改变中间函数的行为。这就比简单的函数调用要灵活太多了。

    #回调函数1#生成一个2k形式的偶数def double(x):    return x * 2    #回调函数2#生成一个4k形式的偶数def quadruple(x):    return x * 4 callback_demo.py` from even import * #中间函数#接受一个生成偶数的函数作为参数#返回一个奇数def getOddNumber(k, getEvenNumber):    return 1 + getEvenNumber(k)    #起始函数,这里是程序的主函数def main():        k = 1    #当需要生成一个2k+1形式的奇数时    i = getOddNumber(k, double)    print(i)    #当需要一个4k+1形式的奇数时    i = getOddNumber(k, quadruple)    print(i)    #当需要一个8k+1形式的奇数时    i = getOddNumber(k, lambda x: x * 8)    print(i)    if __name__ == "__main__":    main()

    异步处理有关的回调函数

    def apply_ascyn(func, args, callback):    """     func 函数的是处理的函数    args 表示的参数    callback 表示的函数处理完成后的 该执行的动作    """    result = func(*args)    callback(result) def add(x, y):    return x + y def print_result(result):    print(result) apply_ascyn(add, (2, 3), callback=print_result)

    这里print_result只能接收一个result的参数,不能传入其他信息。当想让回调函数访问其他变量或者特定环境的变量值的时候会遇到问题。

    使用一个绑定方法来代替这个简单函数。

    def appy_async(func, args, *, callback):    result = func(*args)    #异步执行的函数 同时将执行后返回到这个早从这个函数跳出去    callback(result) def add(x ,y):    return x + y class ResultHandler(object):    def __init__(self):        self.sequence = 0     def handle(self, result):        self.sequence += 1        print("[{}] Got: {}".fORMat(self.sequence, result)) resultHandler = ResultHandler()appy_async(add, (2,3), callback=resultHandler.handle)

    Python中的回调函数怎么使用

     使用闭包代替上面的类来实现

    def apply_async(func, args, *, callback):    result = func(*args)    callback(result) def add(x ,y):    return x + y def make_handler():    sequence = 0    def handler(result):        nonlocal sequence        sequence += 1        print("[{}] Got:{}".format(sequence, result))    return handler handler = make_handler()apply_async(add, (2,3), callback=handler)

    使用协程来完成异步操作

    def apply_async(func, args, *, callback):    result = func(*args)    callback(result) def add(x, y):    return x + y def make_handler():    sequence = 0    while True:        result = yield        sequence += 1        print("[{}] Got:{}".format(sequence, result)) handle = make_handler()next(handle) apply_async(add, (2,3), callback=handle.send)

    读到这里,这篇“Python中的回调函数怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

    --结束END--

    本文标题: Python中的回调函数怎么使用

    本文链接: https://www.lsjlt.com/news/341905.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python中的回调函数怎么使用
      本文小编为大家详细介绍“Python中的回调函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的回调函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。摘要主要是介绍python 的...
      99+
      2023-07-02
    • python线程池回调函数怎么使用
      在Python中,可以使用`concurrent.futures`模块中的`ThreadPoolExecutor`来创建线程池,并利...
      99+
      2023-10-26
      python
    • jquery回调函数怎么使用
      本篇内容介绍了“jquery回调函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在jquery中,回调函数就是一个被作为参数传递的...
      99+
      2023-07-04
    • Node.js中的回调函数怎么用
      这篇文章主要介绍了Node.js中的回调函数怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js中的回调函数怎么用文章都会有所收获,下面我们一起来看看吧。同样,在Node.js中,比如I/O操作发...
      99+
      2023-06-27
    • python回调函数怎么传参数
      在 Python 中,可以使用 functools.partial() 函数来传递参数给回调函数。functools.partial...
      99+
      2023-10-19
      python
    • js中回调函数怎么用
      这篇文章主要为大家展示了“js中回调函数怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中回调函数怎么用”这篇文章吧。JS 回调函数详解JS回调函数何为...
      99+
      2022-10-19
    • c语言中的回调函数怎么使用
      这篇文章主要讲解了“c语言中的回调函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言中的回调函数怎么使用”吧!一、通过这节课程你能掌握以下知识...
      99+
      2022-10-19
    • python中什么是回调函数
      python中的回调函数是指一下几种回调函数是指通过函数参数传递到其它代码的,某一块可执行代码的引用。回调函数就是通过函数名调用的函数,如把函数的名字作为参数传递给另一个函数,当这个参数被用来调用其所指向的函数时,这个函数就是回调函数。回调...
      99+
      2022-10-16
    • C语言的回调函数怎么使用
      本篇内容主要讲解“C语言的回调函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言的回调函数怎么使用”吧!对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级...
      99+
      2023-06-17
    • python回调函数是什么
      python回调函数是指将一个函数作为参数传递给另一个函数,并在特定事件发生时由另一个函数调用的函数。回调函数通常用于异步编程、事件驱动编程和处理大量数据时的回调机制。其应用场景如下:1、事件处理;2、异步编程;3、迭代器和生成器。本教程操...
      99+
      2023-12-11
      python 回调函数
    • keras回调函数的使用
      目录回调函数fit()方法中使用callbacks参数模型的保存和加载通过对Callback类子类化来创建自定义回调函数【其他】模型的定义 和 数据加载回调函数 回调函数是一个对象(...
      99+
      2023-03-13
      keras回调函数 keras回调
    • c++异步回调函数怎么调用
      在C++中,异步回调函数通常使用函数指针或者函数对象来表示。下面是调用异步回调函数的几种常见方法:1. 使用函数指针:cppvoid...
      99+
      2023-10-20
      c++
    • c语言怎么调用python函数返回值
      在c语言中调用python函数返回值,具体方法如下:void test1() { Py_Initialize();//初始化python getcurrent(); PyObject *pModule = NULL, *pFunc = NU...
      99+
      2022-10-14
    • Python中怎么调用函数
      Python中怎么调用函数,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。函数function是什么?函数的作用函数是可以实现一些特定功能的小方法或是小程序。在Python中...
      99+
      2023-06-19
    • JavaScript回调函数怎么应用
      本篇内容介绍了“JavaScript回调函数怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
      99+
      2022-10-19
    • c语言callback回调函数怎么使用
      在C语言中,回调函数(callback)是一种函数指针,可以作为参数传递给其他函数,这样在调用该函数时,可以执行传递的回调函数。下面...
      99+
      2023-10-18
      c语言
    • Go回调函数和闭包怎么使用
      本篇内容介绍了“Go回调函数和闭包怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Go回调函数和闭包当函数具备以下两种特性的时候,就可...
      99+
      2023-06-30
    • 如何使用Node.js中的回调函数
      本篇内容主要讲解“如何使用Node.js中的回调函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Node.js中的回调函数”吧!趣讲Node.js的回...
      99+
      2022-10-19
    • GO语言中回调函数的使用
      目录0.前言1.使用2.几个例子2.1 异步访问URL2.2 Sort.Slice函数2.3 简易计算器0.前言 回调函数是一种在编程中常见的技术,通常在异步编程中使用。简单来说,回...
      99+
      2023-03-06
      GO语言回调函数 GO 回调
    • 如何使用JavaScript中的回调函数
      这篇文章将为大家详细讲解有关如何使用JavaScript中的回调函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解...
      99+
      2023-06-14
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作