内容目录
有趣的python,emm或者说叫蛋疼的python吧
- 思考代码输出以及原因
def multiply():
return [lambda x: i * x for i in range(4)]
print([m(100) for m in multiply()])
[300, 300, 300, 300]
def multiply():
return [lambda x, i = i : i * x for i in range(4)]
print([m(100) for m in multiply()])
[0, 100, 200, 300]
[lambda x: i * x for i in range(4)]
[.(x)>,
.(x)>,
.(x)>,
.(x)>]
[lambda x, i = i : i * x for i in range(4)]
[.(x, i=0)>,
.(x, i=1)>,
.(x, i=2)>,
.(x, i=3)>]
result = []
for i in range(4):
def func(x, i=i): # 将当前的 i 值绑定到默认参数
return i * x
result.append(func)
print([f(100) for f in result])
[0, 100, 200, 300]