码迷,mamicode.com
首页 > 编程语言 > 详细

python回调函数

时间:2018-01-12 22:39:38      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:地址   ret   说明   hang   另一个   api   抽油烟机   []   gpo   

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回调函数

标签:地址   ret   说明   hang   另一个   api   抽油烟机   []   gpo   

原文地址:https://www.cnblogs.com/bawu/p/8277690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!