python回调函数

Posted bawu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python回调函数相关的知识,希望对你有一定的参考价值。

1、什么是回调函数,感觉好复杂??存在的意义是什么?

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

如下面的例子1:来源  https://www.cnblogs.com/hainan-zhang/p/6222552.html

def clean1(times):
    """
    就假装扫地
    param times :次数
    return None
    """
    print(已完成扫地次数:,times)
def clean2(times):
    """
    假装洗抽油烟机
    param times:次数
    return: None
    """
    print(已洗抽油烟机次数:,times)
def call_clean(times,function_name):
    """
    这个很重要,就是家政公司的业务系统,要啥业务都得在这说
    这个是实现回调函数的核心
    param times:次数
    param function_name:回调函数名
    return:调用的函数结果
    """
    return function_name(times)
call_clean(10,clean2)   #call_clean(10,clean2)

这个例子介绍回调函数的使用,没有说明回调函数存在的意义?这样写还不如直接调用clean2函数10次。

下面在网上找的另外一个,例子2:http://blog.csdn.net/ma52103231/article/details/61432120

看着有点懵,难度大,换一个

class Callback:
    def __init__(self,instance,function_name):
        self.instance=instance
        self.function_name=function_name
    def action(self,params):
        self.instance.__getattribute__(self.function_name)(params)
class Test:
    def __init__(self):
        self.clb=None
    def register(self,clb):
        self.clb=clb
    def do_test(self):
        params=[]
        self.clb.action(params)
class Api:
    def __init__(self,test_instance):
        test_instance.register(Callback(self,self.function.__name__))
    def function(self,params):
        print(function)
t=Test()
a=Api(t)
t.do_test()
#function

例子3:http://blog.csdn.net/ma52103231/article/details/61432120

 

以上是关于python回调函数的主要内容,如果未能解决你的问题,请参考以下文章

满足条件时是不是可以在 GLSL 着色器中回调 C/C++ 函数/代码? [关闭]

ios block和delegate的区别

来自 C++ 的回调 python 函数,对象被破坏

通过 Boost Python 将 Python 函数转换为 C++,用作回调

前端片段整理

将 python 函数传递给 SWIG 包装的 C++ 代码