Python lambda表达式

Python中的lambda表达式,本质上就是一个返回函数的表达式。
该函数没有名称,但可以通过将他赋值个变量来使他具有名称:
如:

add= lambda a=1,b=2 :a+b
print(add(3,5))

此例中,add为变量,它被赋予了一个lambda表达式,变成了一个函数(类似于C语言中,指向函数的指针)。
冒号前面的a,b是要传递的参数,可以没有。
冒号后面的表达式时返回值。

lambda表达式的基本格式为:

lambda 参数 : 表达式(同时也是返回值)

而在tkinter中,lambda表达式用于帮助传递参数:

1.如果你的控件不需要向它绑定的事件传递参数,如下即可:

# -*- coding: utf-8 -*-
import tkinter as tk
def event():
    print("确定")
root=tk.Tk()
tk.Button(master=root,text="确定",command=event).pack()
root.mainloop()

即不需要使用lambda表达式,直接command=函数名绑定。

2.但如果你需要进行参数传递,就需要使用到lambda表达式:

import tkinter as tk
def event(n):
    print(n)
    print("确定")
root=tk.Tk()
num=777
tk.Button(master=root,text="确定",command=lambda n=num :event(n)).pack()
root.mainloop()

以上使用了lambda表达式来传递参数。”n=num“ 代表默认参数,由于在触发事件时,控件不会向它绑定的事件函数传递参数,所以让控件绑定一个带默认参数的函数(也就是我们定义的lambda表达式),这样即使控件不向函数传递,你也可以通过设置默认参数的值的方式,向lambda表达式传递参数。(好tm绕啊)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值