在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))