tkinter中用到Python的lambda

在tkinter中,比如一个控件关联了一个函数,比如Button。代码如下:

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

这里click函数就与button这个插件关联了,但是不好的地方就是不能传递参数。tkinter要求由按钮(或者其它的插件)触发的控制器函数不能含有参数,目的就是为了以统一的方式去调用他们。那么我们有什么办法给函数传递参数,因为这经常会用到。答案就是使用lambda。

lambda可以使我们在任何地方创建一个没有名字的单行函数。下面是简单的使用例子。

>>> lambda: 3

<function <lambda> at 0x00A89930>

>>> (lambda:3)()

3

第一行表达式创建了一个匿名函数,函数功能为返回3.第二个表达式创建并立即执行了同样的函数。

介绍一下lambda,冒号之前是函数参数,可以多个,用逗号隔开,也可以没有。冒号右边是返回值。

下面是创建一个带有参数的lambda函数。

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

6

这个东西能在GUI里面帮到我们很大的忙,使我们的函数控制器能传递参数。以插件Button为例

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

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值