回调在python中

Posted

tags:

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

  • 回调 

    函数作为参数

    函数执行=> 到一个参数函数时=> 调用另一个函数=> 回到主函数

  • #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    __author__ = ‘teng‘
    def test(callback):
        print ‘test func begin‘
        callback()
    
    def test1(callback):
        print ‘test1 func begin‘
        for func in callback:
            func()
    
    def cb1():
        print ‘callback 1‘
    
    def cb2():
        print ‘callback 2‘
    
    if __name__==‘__main__‘:
        test(cb1)
        test1((cb1, cb2))


以下是一个回调和项目中的应用

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = ‘teng‘

def send_weixin(addr, message):
    print u"发微信("+message+u")给"+addr
def send_email(addr, message):
    print u"发邮件("+message+u")给"+addr
def send_qq(addr,message):
    print u"发QQ("+message+u")给"+addr
def send_duanxin(addr, message):
    print u"发短信("+message +u")给"+addr

send_method ={
    ‘QQ‘:send_qq,
    ‘WeiXin‘:send_weixin,
    ‘DuanXin‘:send_duanxin,
    ‘Email‘:send_email
}


def sendgupiao(message, custom_file, vip=False):
# 处理message
# 判断是否Vip
# 解析文件,得到地址
# f(message, addr)
    send_s =[]
    for s in message:
        if vip == False:
            t = s.split(‘,‘)
            send_s.append(t[0])
        else:
            send_s.append(s)
    send_message = ‘;‘.join(send_s)

    for line in open(custom_file, ‘r‘):
        info = line.strip().split(‘,‘)
        send_method[info[0]](info[1], send_message)
#info[0]为调用方式

if __name__==‘__main__‘:
    sendgupiao([u"000001买,低于8.5买",u"000002卖,高于11.2卖"],‘custom_info.txt‘)
    print "################### VIP ####################"
    sendgupiao([u"000001买,低于8.5买",u"000002卖,高于11.2卖"],‘custom_info.txt‘,vip=True)


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

如何测量python中代码行之间的时间?

如何考虑 Python 中代码可重用性和可扩展性的 OOP 设计选择?

《深度学习入门 基于Python的理论与实现》书中代码笔记

统计代码中代码行空行注释行的个数

《爬取知网文献信息》中代码的一些优化

pycharm中代码怎样整体向右移动