tkinter中用到Python的lambda

在tkinter中,好比一個控件關聯了一個函數,好比Button。代碼以下:函數

button = Button(window, text='Down', command=click)spa

這裏click函數就與button這個插件關聯了,可是很差的地方就是不能傳遞參數。tkinter要求由按鈕(或者其它的插件)觸發的控制器函數不能含有參數,目的就是爲了以統一的方式去調用他們。那麼咱們有什麼辦法給函數傳遞參數,由於這常常會用到。答案就是使用lambda。插件

lambda能夠使咱們在任何地方建立一個沒有名字的單行函數。下面是簡單的使用例子。it

>>> lambda: 3io

<function <lambda> at 0x00A89930>function

>>> (lambda:3)()匿名函數

3cli

第一行表達式建立了一個匿名函數,函數功能爲返回3.第二個表達式建立並當即執行了一樣的函數。lambda

介紹一下lambda,冒號以前是函數參數,能夠多個,用逗號隔開,也能夠沒有。冒號右邊是返回值。command

下面是建立一個帶有參數的lambda函數。

>>>(lambda x: 2*x)(3)

6

這個東西能在GUI裏面幫到咱們很大的忙,使咱們的函數控制器能傳遞參數。以插件Button爲例

button = Button(window, text='Down', command=lambda: click(counter,1))

相關文章
相關標籤/搜索