当前位置:网站首页>使用lambda在循环中传参时,参数总为同一个值
使用lambda在循环中传参时,参数总为同一个值
2022-07-06 09:14:00 【imxlw00】
当我使用PyQt5时,需要在调用事件时传入参数,于是想到了lambda函数,代码如下:
for i, button in enumerate(self.button_dict.values()):
button.clicked.connect(lambda: self.click_checkbox(i))
此时i都是同一个值。
lambda函数(或称闭包)传递的不是参数的值,而是参数的物理地址,所以lambda传递的参数都会是同一个值。想要解决可以使用functools模块。
解决方案
导入functools模块,使用partial方法。更改的代码如下:
button.clicked.connect(partial(self.click_checkbox, i))
参考:https://blog.csdn.net/qq_34965596/article/details/100579458
边栏推荐
- [蓝桥杯2021初赛] 砝码称重
- [free setup] asp Net online course selection system design and Implementation (source code +lunwen)
- The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
- [Thesis Writing] how to write function description of jsp online examination system
- 基于apache-jena的知识问答
- 记某公司面试算法题:查找一个有序数组某个数字出现的次数
- QT creator design user interface
- 01项目需求分析 (点餐系统)
- AcWing 179.阶乘分解 题解
- 【博主推荐】C#MVC列表实现增删改查导入导出曲线功能(附源码)
猜你喜欢
[number theory] divisor
Django运行报错:Error loading MySQLdb module解决方法
QT creator test
【博主推荐】C# Winform定时发送邮箱(附源码)
Idea import / export settings file
Navicat 導出錶生成PDM文件
[蓝桥杯2017初赛]方格分割
Software testing and quality learning notes 3 -- white box testing
How to configure flymcu (STM32 serial port download software) is shown in super detail
LeetCode #461 汉明距离
随机推荐
MySQL completely uninstalled (windows, MAC, Linux)
AcWing 1294.樱花 题解
记一次某公司面试题:合并有序数组
数数字游戏
[蓝桥杯2017初赛]包子凑数
Install mongdb tutorial and redis tutorial under Windows
解决安装Failed building wheel for pillow
【博主推荐】C#生成好看的二维码(附源码)
QT creator support platform
Request object and response object analysis
Julia 1.6 1.7 common problem solving
What does usart1 mean
Introduction and use of automatic machine learning framework (flaml, H2O)
Install MySQL for Ubuntu 20.04
安全测试涉及的测试对象
QT creator specifies dependencies
QT creator design user interface
double转int精度丢失问题
Some notes of MySQL
[free setup] asp Net online course selection system design and Implementation (source code +lunwen)