tkinter中用到Python的lambda
2012-09-25 10:25
176 查看
在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))
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))
相关文章推荐
- python3使用tkinter做界面之拆分窗口(SplitWindow)
- Python 下的 lambda 算子
- Python下用Tkinter进行GUI编程
- Python Tkinter制作GUI
- Python特殊语法:filter、map、reduce、lambda
- Python3 zip,lambda,map,reduce的使用
- Python的匿名函数——lambda
- python3 lambda表达式与函数式编程
- Python 匿名函数lambda
- Python--lambda表达式学习
- Tkinter 8.5 参考手册: a GUI for Python (三)
- python as lambda fiter的使用
- 【Python开发】Lambda表达式使用
- 【python3.5 tkinter】页面跳转
- Python爬虫学习篇——————网络爬虫用到的库
- python中的yield浅析(每次在用到的时候都感觉逻辑很混乱,多看一下这个)
- python字符串连接也可以使用print时用到的方法
- windows下Python的Tkinter库的安装
- Python返回函数_函数闭包_lambda匿名函数
- Python中map与lambda的结合使用