回調在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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章