回調
函數作爲參數
函數執行=> 到一個參數函數時=> 調用另一個函數=> 回到主函數
#!/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)