簡體   English   中英

異步中的lambdas call_later

[英]lambdas in asyncio call_later

異步事件循環上的Python 3.7.2文檔在call_later函數的文檔中說:

可選的位置args將在調用時傳遞給回調。 如果要使用關鍵字參數調用回調,請使用functools.partial()。

在這種情況下,是否認為使用functools.partial優於使用lambda

在這種情況下,是否認為使用functools.partial優於使用lambda

“高級”這個詞太強了。 可以說functools.partial是簡單參數綁定的“一個顯而易見的選擇”,這可能是正確的。

與上述句子暗示的相比, functools.partiallambda相比可能具有一些優勢:

  • 正如@AlexHall 指出的那樣, functools.partial避免了在循環中創建lambda時經常發生的后期綁定錯誤

  • functools.partial 可能使某些讀者更清楚此意圖。 (這顯然是個人的,因為具有FP背景的讀者通常會對lambda表現出強烈的偏好。)

  • 在CPython中, functools.partial可能比lambda快一點,因為它不需要創建Python堆棧框架,也不需要執行實際的綁定。 其優化的C實現僅需要在對象上執行調用。 差異應根據具體情況進行衡量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM