python中的lambda函式
阿新 • • 發佈:2019-01-23
lambda,是建立一個小函式的工具,建立的函式中,只能有最多一個表示式。
如下:
這只是一個小例子,建立了一個加法函式,把輸入的兩個引數相加,然後返回結果。
同時lambda返回的小函式還可以做為另一個函式的引數來用,如下:
本例子中使用的還是第一個例子中建立的 f 函式,注意test 函式的呼叫方式,它用f 做為引數,同時,又有兩個引數傳進來,本例中,只是用這兩個函式進行了相加操作。
另一個常用的方式是在pygtk中,經常要顯示一個對話方塊,但是又不想單獨給它定義一個響應函式,就可以通過lambda的方式,定義一個簡單的函式,如下:
這段程式碼是pygtk-demo中的例子Application main window中的一段,顯示了一個訊息對話方塊,同時,定義了這個對話方塊的響應為銷燬這個訊息框。此時,就可以用lambda函式定義一個小的響應函式,這個響應函式有兩個引數,第一人就是這個對話方塊,第二個引數是響應的按鈕。此例中為了讓這個訊息框銷燬,只用到了第一個引數,但是在這個connect 函式處的第二個引數,需要給一個兩個引數的函式,所以,這個lambda函式定義了兩個引數,但是隻用到了一個。
這個呼叫是比較隱晦的方式,把lambda產生的函式當做一個回撥函式送給了系統,同時這個回撥函式有兩個引數。
當然如果對GTK比較熟,很快就可以理解。