lambda python参数,Python lambda默认参数

Python lambda默认参数教程

Python lambda默认参数详解

语法

lambda [parameter_list, param=val] : expression

参数

参数

描述

lambda

定义 lambda 表达式所使用的关键字,所有的 lambda 表达式前面都必须使用该关键字。

parameter_list

参数列表。

param

形式参数。

val

形式参数 param 的默认值。

expression

返回值。

说明

定义的 lambda 表达式的参数的默认值为 val。

Python lambda循环定义详解

语法

funcs = [lambda x, n=n: x+n for n in range(val)]

说明

使用 lambda 表达式定义了一个循环。

案例

lambda 表达式参数默认值

使用 lambda 表达式参数默认值

print("嗨客网(www.haicoder.net)")

sum = lambda x, y=100: x + y

print("lambda res =", sum(512, 512))

print("lambda res =", sum(512))

程序运行后,控制台输出如下:

948911ed78788ad8267988b0e7aa9215.png

我们定义了一个 lambda 表达式,该 lambda 表达式传入两个参数,返回这两个参数的和,同时,我们将该 lambda 表达式赋值给了变量 sum。

该 lambda 表达式的第二个参数 y 有一个默认值 100,即如果我们不传入参数 y,那么参数 y 的值就为 100。

接着,我们直接可以通过 sum 来调用我们定义的 lambda 表达式,第一次调用时,我们传入了两个 512,最后,返回了这两个数的和,第二次调用时,我们只传入了一个参数,第二个参数使用默认的 100。

lambda表达式参数运行时绑定

lambda 表达式参数是运行时绑定的

print("嗨客网(www.haicoder.net)")

x = 10

add = lambda y : x + y

x = 20

# lambda 表达式参数是运行时绑定的

print("lambda add =", add(20))

print("lambda add =", add(30))

程序运行后,控制台输出如下:

b5df21e0c501eb6b6c9933d1a3aec767.png

因为 lambda 表达式的参数是运行时动态绑定的,因此,我们运行程序时,x 的值为 20,因此我们程序最终输出的结果为 40 和 50,现在我们将程序修改为以下代码:

print("嗨客网(www.haicoder.net)")

x = 10

add = lambda y, x=x : x + y

x = 20

# lambda 表达式参数是运行时绑定的

print("lambda add =", add(20))

print("lambda add =", add(30))

程序运行后,控制台输出如下:

81416fe6d7e804d9267f3a6d1a88789d.png

我们将参数 x 的值设置为默认参数,再次运行我们的程序发现,此时使用的 x 不再是动态绑定的 20 了,而是使用的 10,因此使用 lambda 表达式的默认参数可以解决参数的运行时绑定问题。

lambda表达式循环

在 lambda 表达式里使用循环

print("嗨客网(www.haicoder.net)")

funcs = [lambda x: x+n for n in range(3)]

for f in funcs:

print("Val =", f(0))

程序运行后,控制台输出如下:

56d1409605de3c554c109dad439a68b3.png

我们在 lambda 表达式里面使用

print("嗨客网(www.haicoder.net)")

funcs = [lambda x, n=n: x+n for n in range(3)]

for f in funcs:

print("Val =", f(0))

程序运行后,控制台输出如下:

0d643aec788ff6f463316e2f08b55120.png

我们将参数 n 的值设置为默认参数,再次运行我们的程序发现,此时输出了 0 到 3 的值。

Python lambda默认参数总结

Python 的 lambda 表达式的参数也是支持默认值的,就类似与函数的默认参数一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值