首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 回調函數機制詳解與實戰示例

     編輯:更多程式設計知識

什麼是回調函數?

在軟體模組互動中,調用方式主要有三類:同步調用(阻塞等待)、回調(雙向調用)與 異步調用(事件驅動)。回調模式下,被調用方在執行過程中會主動調用調用方提供的函數,形成雙向交互。回調常作為異步通知的基礎機制。

Python 回調基本示例

以下代碼展示兩個模組 call.py 與 called.py 的回調交互:

call.py(調用方)

import called

def callback():
    print("in callback")

def main():
    called.test_call(callback)
    print("in call.py")

if __name__ == "__main__":
    main()

called.py(被調用方)

def test_call(p_call):
    print("in called.py test_call()")
    p_call()  # 執行回調

執行輸出

in called.py test_call()
in callback
in call.py

核心概念解析

  • 回調函數:作為參數傳遞給另一個函數,並在特定時機被調用的函數。
  • 雙向調用:主動方傳入回調,被動方在適當時機「回呼」主動方代碼。
  • 應用場景:事件處理、異步 IO 完成通知、框架擴展點(如 Flask 的信號、Django 的 middleware)。

進階:帶參數的回調

def process_data(data, on_complete):
    # 模擬耗時操作
    result = data.upper()
    on_complete(result)  # 回調並傳遞結果

def handle_result(res):
    print("處理完成:", res)

process_data("hello", handle_result)
# 輸出: 處理完成: HELLO

總結

回調是 Python 實現事件驅動與異步編程的基石。掌握回調模式,能幫助你設計更靈活、可擴展的 API 與框架集成代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved