国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python 回調(diào)函數(shù)和回調(diào)方法的實(shí)現(xiàn)分析

2020-01-04 17:35:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了python 回調(diào)函數(shù)和回調(diào)方法的實(shí)現(xiàn)分析,需要的朋友可以參考下
 

回調(diào)與事件驅(qū)動(dòng)
回調(diào)函數(shù)有比較重要的意義:它在是事件驅(qū)動(dòng)的體現(xiàn)
我們?cè)囅胍粋€(gè)場(chǎng)景,如果我們觸發(fā)了某個(gè)事件,比如點(diǎn)擊事件
那么只要給這個(gè)點(diǎn)擊事件綁定一個(gè)或多個(gè)處理事件,也就是回調(diào)函數(shù)
我們就可以在點(diǎn)擊事件被觸發(fā)后(結(jié)束后)調(diào)用相應(yīng)的方法來(lái)處理后事
比如

普通回調(diào)

#在函數(shù)中使用回調(diào)def click(callback):  eval(callback)() #eval()可以講字符串解析成可以執(zhí)行的代碼def handle:  print '在點(diǎn)擊事件結(jié)束后調(diào)用該函數(shù),進(jìn)行處理,比如彈出框alert()'if(__name__ == '__main__'):  fun1('fun2')

上面那個(gè)場(chǎng)景很顯然是模擬我們?nèi)粘J褂脼g覽器是的一個(gè)場(chǎng)景:
當(dāng)我們點(diǎn)擊某個(gè)按鈕是,可能會(huì)彈出一個(gè)警告框或者確認(rèn)框,這可以理解為
點(diǎn)擊事件觸發(fā)后, 調(diào)用了這個(gè)處理函數(shù),這個(gè)函數(shù)的功能就是彈出一個(gè)警告框或者確認(rèn)框
從事件驅(qū)動(dòng)來(lái)講: 點(diǎn)擊事件的發(fā)送驅(qū)動(dòng)這handle處理程序的觸發(fā)
恩,這樣會(huì)不會(huì)比較清晰?

類(lèi)中使用回調(diào)
因?yàn)閜ython從一開(kāi)始就是面向?qū)ο蟮亩ㄎ唬宰鳛閜ython 程序員, 可能會(huì)面對(duì)如下的場(chǎng)景:
我們創(chuàng)建一個(gè)實(shí)例, 我們傳入數(shù)據(jù)給這個(gè)實(shí)例,最后得到我們我們想要的結(jié)果,比如我們傳給
一個(gè)名為 getCsdnTitle的對(duì)象一個(gè)url(一篇csdn博客的url),我們希望最后得到這篇文章的文字內(nèi)容,
我們是不是首先地通過(guò)http請(qǐng)求獲取該url 對(duì)應(yīng)的html內(nèi)容,給這個(gè)方法命名為fetch_url()
然后我們需要對(duì)html進(jìn)行處理,比如過(guò)濾,正則匹配,字符串處理,得到我們想要的文字內(nèi)容,給這個(gè)方法命名為
get_content()
這樣這個(gè)對(duì)象內(nèi)部就需要經(jīng)過(guò)fetch_url 和 get_content 兩個(gè)方法來(lái)得到最后我們需要的結(jié)果,而且兩者是有明顯的
順序區(qū)別的,我們可以理解為調(diào)用完fetch_url 后回調(diào) get_content 方法,大家可能會(huì)說(shuō),這是不是麻煩了很多,
其實(shí),大家要知道,實(shí)際開(kāi)發(fā)中這條執(zhí)行鏈?zhǔn)强赡軙?huì)很長(zhǎng)的,通過(guò)回調(diào),我們就可以指定在某個(gè)步驟執(zhí)行完后我們要進(jìn)行怎么樣的
操作,這樣邏輯上和理解上都會(huì)很有效率

下面舉個(gè)小例子演示下在類(lèi)中實(shí)現(xiàn)回調(diào)的方法

#在類(lèi)中使用回調(diào)方法

#在函數(shù)中使用回調(diào)def click(callback):  eval(callback)() #eval()可以講字符串解析成可以執(zhí)行的代碼def handle:  print '在點(diǎn)擊事件結(jié)束后調(diào)用該函數(shù),進(jìn)行處理,比如彈出框alert()'if(__name__ == '__main__'):  fun1('fun2')

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东台市| 晋宁县| 苏尼特右旗| 南京市| 社旗县| 惠安县| 崇礼县| 咸宁市| 板桥市| 清苑县| 秦皇岛市| 青神县| 错那县| 灵山县| 南充市| 揭西县| 乃东县| 保德县| 湾仔区| 砚山县| 尉氏县| 翁牛特旗| 普安县| 永清县| 枣阳市| 宣威市| 固原市| 潞城市| 辉南县| 连州市| 赣州市| 武夷山市| 隆回县| 三门峡市| 章丘市| 西吉县| 新巴尔虎左旗| 三河市| 伊金霍洛旗| 安仁县| 黑水县|