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