内容目录
						
						有趣的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]