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

首頁 > 編程 > Python > 正文

回調函數的意義以及python實現實例

2020-01-04 16:52:11
字體:
來源:轉載
供稿:網友

因工作需要,最近在學習使用python/80025.html">python來解析各種文件,包括xmind,xml,excel,csv等等。

在學習python解析XML的時候看到這樣一段話:

ElementTree(元素樹) ElementTree就像一個輕量級的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內存少。 注:因DOM需要將XML數據映射到內存中的樹,一是比較慢,二是比較耗內存,而SAX流式讀取XML文件,比較快,占用內存少,但需要用戶實現回調函數(handler)。

當時就犯了老毛病,被一個不是很知道的名詞引起了興趣--回調函數,后搜索資料學習了一下,感覺需要寫個什么來記錄一下順便加深映象,此處引用了不少各位神的經驗,篇幅所限就不一一感謝了。

 回調函數(callback),百度百科的解釋是這樣的:

回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發(fā)生時由另外的一方調用的,用于對該事件或條件進行響應。

可能是學識確實有限,看起來比較懵逼。然后去找了一些通俗易懂的解釋--就好像是家政服務,家政公司提供了一個API:打掃房子,而且還能提供各種打掃,比如掃地,擦家具,清潔馬桶等等,我們把打掃房子看做庫函數,那么打掃屋子的方式呢是你自己決定的,你要怎么打掃就要預約并執(zhí)行那種回調函數,你預約并執(zhí)行服務的行為叫做登記回調函數。下面寫個看起來很low的實現以便理解

# coding=utf-8# 請不要在意為毛要清潔這么多次def clean1(times):  """  就假裝是掃地吧,這種函數命名方式,千萬別學習  :param times: 次數  :return: None  """  print '已完成掃地次數:', str(times)def clean2(times):  """  默默的裝作洗抽油煙機  :param times: 次數  :return: None  """  print '已洗抽油煙機次數', str(times)def call_clean(times, function_name):  """  這個很重要,這個就是家政公司的業(yè)務系統(tǒng),要啥業(yè)務都得在這說  這個是實現回調函數的核心  :param times:次數  :param function_name:回調函數名  :return:調用的函數結果  """  return function_name(times)if __name__ == '__main__':  call_clean(100, clean2) # 給我洗100次抽油煙機,好吧,很變態(tài)

最后說一句,看到這應該懂了的一句話:

回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 门源| 应用必备| 石林| 贞丰县| 南投市| 成安县| 嘉禾县| 洪雅县| 上饶市| 宝清县| 内江市| 喀什市| 沂源县| 彝良县| 肇源县| 垣曲县| 恭城| 葫芦岛市| 醴陵市| 昭平县| 特克斯县| 达孜县| 博白县| 罗山县| 宿松县| 宝应县| 汽车| 威信县| 集安市| 宜宾市| 定陶县| 阿克| 林口县| 襄樊市| 德令哈市| 吕梁市| 怀仁县| 河源市| 灵宝市| 绩溪县| 轮台县|