如何将带参函数f1作为实参传入f2

函数名作为参数的情况相信大家是见过的,但是今天在工作中遇到了一个传入带参函数的问题,困扰了很久,因此记录下来,也希望能帮助到和我一样不明白这个问题的朋友们。

def usr_login(var_usr_name,var_usr_pwd):
pass
btn_login = tk.Button(window,text=‘Login’,command=usr_login)

如这段代码所示,command参数后面需要传入一个带有参数的函数,这下可是难倒我了。我试着在后面加上参数,如下所示:

def usr_login(var_usr_name,var_usr_pwd):
pass
btn_login = tk.Button(window,text=‘Login’,command=usr_login(var_usr_name,var_usr_pwd))

结果程序运行出来的在我还没有进行操作便执行了(这是tkinter的按钮),听不懂没关系,反正这个方法是有问题的。

后来研究了匿名函数,得以解决:
def usr_login(var_usr_name,var_usr_pwd):
pass
btn_login = tk.Button(window,text=‘Login’,command=lambda:usr_login(var_usr_name,var_usr_pwd))

加上一个lambda便得以解决。下面给一个较完整的案例。
def f1(function):
return function()

def Add(x,y):
return x+y
x=2
y=3
result = f1(lambda : Add(x,y))
print(result)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值