Lambda表达式详解
Lambda表达式是一个匿名函数, 只适合简单传入参数, 简单计算返回结果, 不适合功能复杂的情况
lambda定义的匿名函数也有输入和输出, 只是没有名字, 语法格式如下:
Lambda 参数值列表: 表达式
参数列表即为输入, 表达式计算的结构即为输出
示例:
add3args = lambdax,y,z = x+y+z
print(add3args(10, 20, 30))
上述表达式相当于以下含义
def add3args(x, y, z):
return x+y+z
lambda表达式的参数列表可以为如下内容
lambda格式 | 说明 |
lambdax, y: x*y | 函数输入的是x, y, 输出的是x*y |
lambda: None | 函数没有输入函数, 输出函数的None |
lambda: aaa(3, 4) | 函数没有输入参数, 输出的是aaa(3,4)的结果 |
lambda *args: sum(args) | 输入是任意个数的参数, 输出是他们的和 |
lambda **kwargs: 1 | 输入的是任意键值对的参数, 输出是1 |
我们平时使用时, 注意lambda只是一个匿名函数(没有名字的函数), 不能过度使用
1 # coding:utf-8 2 from tkinter import * 3 root = Tk() 4 root.geometry('530x300') 5 6 7 def mouseTest1(): 8 print('112233') 9 10 11 def mouseTest2(a, b): 12 print('a={0}, b={1}'.format(a, b)) 13 14 15 Button(root, text='command1', command=mouseTest1).pack(side='left') 16 Button(root, text='command2', command=lambda: mouseTest2('Xujie', 'Liran')).pack(side='left') 17 18 19 root.mainloop()