gpt4 book ai didi

python - 来自 Pylint 的 Cell-var-from-loop 警告

转载 作者:IT老高 更新时间:2023-10-28 21:43:48 25 4
gpt4 key购买 nike

对于以下代码:

for sort_key, order in query_data['sort']:
results.sort(key=lambda k: get_from_dot_path(k, sort_key),
reverse=(order == -1))

Pylint 报错:

Cell variable sort_key defined in loop (cell-var-from-loop)

谁能提示这里发生了什么?来自pylint源代码的描述是:

A variable used in a closure is defined in a loop. This will result in all closures using the same value for the closed-over variable.

但我不知道这意味着什么。谁能举例说明这个问题?

最佳答案

lambda正文中的名称sort_key会在实际调用函数时查找,所以会看到值sort_key 最近有过。由于您是立即调用 sort,所以在使用结果函数对象之前,sort_key 的值不会改变,因此您可以放心地忽略警告。要使其静音,您可以将 sort_key 设置为 lambda 的参数的默认值:

results.sort(key=lambda k, sk=sort_key: get_from_dot_path(k, sk),
reverse=(order == -1))

关于python - 来自 Pylint 的 Cell-var-from-loop 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314547/

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