lambda回调函数
来源:互联网 发布:wpf编程宝典 源码 编辑:程序博客网 时间:2024/05/19 20:47
调用Python的lambda表达式会在运行时生成新的、未命名的函数对象。如果我们需要将其他传入的数据传递给处理器函数,就可以用lambda表达式延迟对处理器函数的调用,在此期间设定他需要的其他数据。
作用一:可用lambda表达式代替 def 函数
import sysfrom tkinter import *root=Tk()Button(root, text='test',
command=(lambda: print('this is a test') or sys.exit())).pack()
root.mainloop()
lambda只能含有一个表达式,为了模拟原始脚本, 该段代码强制使用了一个or运算符来添加另一个表达式。
作用二:用lambda表达式和对象引用来延迟调用
lambda可以将一个不带参数的函数调用映射到另一个由lambda提供参数的函数上,可以有效的延迟对真正回调处理器的调用。
延迟的必要性在于,假如创建了一个Button部件,如果在按钮创建函数中编写处理器调用,而没有采用lambda或其他中间函数,回调会发生在按钮创建时,而不是按钮被按下时。
from tkinter import *root=Tk()def handler(name): print(name)Button(root, text='lambda test', command=handler('spam')).pack()root.mainloop() #不好:现在运行回调!使用lambda表达式来传递额外数据,用内联函数来定义延迟,将上述程序改为:
Button(root, text='lambda test', command=(lambda: handler('spam'))).pack() #可以,打包在lambda中以延迟
阅读全文
0 0
- lambda回调函数
- Cocos2d-x回调函数 Lambda表达式
- cocos2d3.10 简单引用lambda表达式用作回调函数
- .NET:异步调用长时间工作的方法(采用lambda表达式封装回调函数)
- python小记--lambda 装饰器 max(min)的key回调函数 sorted
- 新线程的回调函数也可以是有一个Lambda表达式的形式
- Java 回调函数(传统方法和lambda方法)-一个例子秒懂
- .NET 回调函数
- 回调函数
- 回调函数
- 回调函数概念
- 回调函数
- 回调函数
- 回调函数
- 回调函数 相关
- delphi 回调函数
- 回调函数
- 回调函数
- easydss与h264编码参数
- lineTo和rLineTo的区别
- 【ASP.NET】服务器控件——概念篇
- 多消费者,多生产者模式Java实现
- eclipse开发工具代码块模板自定义
- lambda回调函数
- Linux下如何查看定位当前正在运行的Nginx的配置文件
- 第四次试验
- 利用intellij idea创建maven 多模块项目
- JSON Key大写转小写(同理,小写转大写也可以)
- centos7安装nvidia
- 时分秒转换
- IQKeyboardManager 第三方,iOS键盘的监听 键盘处理神器
- Spring配置Redis