在循环内自定义 Lambda 创建
使用对象列表并尝试在访问对象属性的循环内创建 lambda 时,您可以遇到一个问题,所有 lambda 都引用列表中的最后一个对象。
要解决这个问题,关键是捕获每个 lambda 的正确对象引用。以下代码片段提供了改进的解决方案:
通过将 obj=obj 设置为 lambda 函数中的关键字参数,您可以在每次迭代中为 obj 创建一个新作用域。这确保每个 lambda 捕获正确的对象引用,将其与后续循环迭代中的更改隔离。
因此,当您迭代 lambdas_list 并调用每个函数时,您将获得每个对象的预期结果在 obj_list 中。此方法有效解决了所有 lambda 引用列表中最后一个对象的问题,并提供了更健壮和 Python 的解决方案。
以上是为什么在循环中创建的 Lambda 引用最后一个对象?的详细内容。更多信息请关注PHP中文网其他相关文章!