gpt4 book ai didi

python - 从 for 循环中捕获变量,以便稍后在 QPushButton 中使用

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:55 27 4
gpt4 key购买 nike

<分区>

免责声明:我已经读过其他类似的问题(例如 one )但还没有找到适合我的解决方案(或者我只是不理解它们: ))

当我创建 lambda在 for 循环中访问 block 范围内的数据我得到一个 pylint警告 ( cell-var-from-loop ) 因为 Python 捕获工作的方式。例如:

for key, value in data.items():
button = QtGui.QPushButton('show data')
button.clicked.connect(lambda: show_data(value))
table_widget.setCellWidget(1, 1, button)

类似的问题还有很多,但我现在还不知道我是如何系统地解决这个问题的。我试图为 lambda 提供默认值喜欢建议here :

for key, value in data.items():
button = QtGui.QPushButton('show data')
button.clicked.connect(lambda v=value: show_data(v))
table_widget.setCellWidget(1, 1, button)

但是当我这样做时,奇怪的事情发生了 - 而 value在我的示例中应该是一个字符串 show_data正在用 bool 调用.

我做错了什么吗?这种方法应该有效吗?

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