Discuss / Python / 用lambda表示式简化闭包生成

用lambda表示式简化闭包生成

Topic source

灰_手

#1 Created at ... [Delete] [Delete and Lock User]
def count():
    return [lambda: i*i for i in range(1, 4)]
f1, f2, f3 = count()

print(f1()) # 9
print(f2()) # 9
print(f3()) # 9

def count2():
    # 用i=i来绑定循环变量的传值
    return [lambda i=i: i*i for i in range(1, 4)]

g1, g2, g3 = count2()
print(g1()) # 1
print(g2()) # 4
print(g3()) # 9

  • 1

Reply