AI英語學習助理

Python

聊一下Python中的closure與lambda表達式

2024年3月21日 08:54
0 137
聊一下Python中的closure與lambda表達式

1,closure,俗稱"閉包",就是"一個函式再加上它被定義時的外部環境變數,該函式則被定義在主函式內並由主函式返回該函式的函式體或是變數,該函式的內部若沒有該變數就依作用域鏈往上層取值",它的功能是在全域的作用域下,直接取得某一函式的"局域變數",一般開發很少用到,除非你是用來開發一些Library的,說的好繞,直接曬程式碼,非常的簡單:


大家跑一下這個程式碼,猜猜它們的輸出分別是什麼呢?


2,lambda表達式,有些書都將它翻成匿名函式(沒有名稱的函式),個人覺得這種稱呼是有問題的,函式可以內嵌語句和表達式,但lambda只能是表達式,不能是語句,比如賦值語句 x += 1,對比在c#中,還區分匿名函式和lambda表達式,它們是不同的,這個以後再說,因此,lambda用“表達式”的這種稱呼才更精確,

它的用法是 lambda params_list: expression,也是非常的簡單,它通常和三目運算一起搭配著用,或是map與filter等。如以下程式碼:










標簽: python
汪子良

Jonas

愛好編程/曳步舞/英語/天文/旅游.....,興趣非常廣泛的全端工程師

精彩評論

暫無網友留言

Weather
臺北
小雨
27 °c
來源  心知天氣