今天看见一个lambda函数的传参方式,记录下来。网上有不少关于匿名函数的讲解,这里就不一一赘述了。
一般lambda是这样传参的
fun = lambda x: x ** 2
print(fun(5))
>>> 25
即存到变量,像函数传参
另一种,用在了列表生成式里
f = [lambda x=10, y=i: x * y for i in range(5)]
for i in f:
print(i())
>>> 0
>>> 10
>>> 20
>>> 30
>>> 40
这里引发我的一些思考,说明了当列表中的匿名函数在创建过程中,它的参数就已经被固定住了
再看一个变种
f = [lambda x=10: x * i for i in range(5)]
for i in f:
print(i())
>>> 40
>>> 40
>>> 40
>>> 40
>>> 40
网友评论