gpt4 book ai didi

python - 如何使 python lambda 表达式的索引静态

转载 作者:行者123 更新时间:2023-12-01 01:38:37 25 4
gpt4 key购买 nike

假设我有这些代码行

index = 1
test = lambda t : t[index]+1
index = 0
print(test([5, 0]))

结果是 6,我希望结果是 1。如何在不编写 t[1]+1(即使用变量)的情况下使 lambda 表达式内的索引变为静态?

最佳答案

Python 的闭包是后期绑定(bind)。这意味着在调用函数时会查找闭包中使用的变量值。

为了避免后期绑定(bind)效应,您可以使用带有默认参数的 lambda:

index = 1
test = lambda t, index=index: t[index]+1 # binds index at definition time
index = 0
print(test([5, 0])) # 1

关于python - 如何使 python lambda 表达式的索引静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52150653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com