美文网首页
【Python】-016-函数-回调

【Python】-016-函数-回调

作者: 9756a8680596 | 来源:发表于2017-08-09 23:23 被阅读26次
  • callback,在函数A中将另一个函数作为参数 callback,函数A中调用callback,执行完后在返回函数A

  • 理解为函数中需要使用到另一个函数,执行完返回之前的函数中

  • 一些例子

    # coding: UTF-8
    
    def test(callback):  //将函数当做变量,函数内调用其他函数
        print "Test function."
        callback()
    
    def testFuncList(callback):
        print "Test fucntion list."
        for func in callback:
            func()
    
    def cb1():
        print "The CallBack One."
    
    def cb2():
        print "The CallBack Two."
    
    if __name__ == "__main__":
        test(cb1)
        test(cb2)  //函数名作为参数
        testFuncList([cb1, cb2])  //函数名列表作为参数
    
  • 稍微复杂的例子,需求如图


    需求
  • 不同顾客需要使用不同的函数,发送消息

     def sendEmail(address, content):
         print "Send: ", content, "to: ", address
    
     def sendQQ(address, content):
         print "Send: ", content, "to: ", address
    
     def sendWeixin(address, content):
         print "Send: ", content, "to: ", address
    
     def sendSMS(address, content):
         print "Send: ", content, "to: ", address
    
  • 针对不同的情况,调用不同的函数,利用字典进行封装

    sendMethod = {
        "QQ": sendQQ,
        "Email": sendEmail,
        "WeiXin": sendWeixin,
        "DuanXin": sendSMS,
        }
    
  • 顾客信息如下,来源于文件

    QQ,73465937, Chenxiansheng
    WeiXin,ffaazf, Xufuren
    DuanXin, 1234567890, Wangxiaojie
    Email, 111@163.com, Zenglingdao
    
  • 给顾客发送消息

    def Info(content, customFile):
        f = open(customFile, "r")
        for line in f:
            nonblankline = re.sub(r'\s', '',line)
            wordlist = nonblankline.split(',')
            print wordlist
            if wordlist[0] in sendMethod.keys():
                sendMethod[wordlist[0]](wordlist[1], content)
    
    if __name__ == "__main__":
        Info("Buy RED BULL at $10", "/Users/caoweiwei/Box Sync/pythonTEST/custom_info.txt")
    

相关文章

  • 【Python】-016-函数-回调

    callback,在函数A中将另一个函数作为参数 callback,函数A中调用callback,执行完后在返回...

  • mqtt python包回调分析

    mqtt的python包,回调函数比较复杂,每次在连接之前,需要先实现回调函数,回调函数的传入参数固定 将回调函数...

  • python 处理多线程返回值

    python线程池有一个回调函数,可以通过回调函数处理线程返回值,线程池的回调函数默认有一个 workWorkRe...

  • 理解 Python 装饰器与回调函数

    1.理解 Python 装饰器2.Python装饰器和回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数...

  • python回调函数

    通常在实际应用中有人写的框架中包含了一个回调函数,需要我们传入一个函数作为参数(这种方式不是面向切面的编程,这个我...

  • python回调函数

    散了,这里我多说了直接上代码了。导入time,模拟延时效果 创建callback函数 创建延时函数 调用,查看效果

  • Python 回调函数

    所有的进程调用test2函数,test2 输出test1对应进程里的数据 输出结果

  • Python回调函数

    回调函数什么时候用?(回调函数在爬虫中最常用) 造数据的非常耗时 处理数据的时候不耗时 你下载的地址如果完成了,就...

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

  • Promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数。 回调地狱 回调套回调套回调套回调套回调套回调套回调....

网友评论

      本文标题:【Python】-016-函数-回调

      本文链接:https://www.haomeiwen.com/subject/endfrxtx.html