python - 在 Python lambda 函数中设置 PyCharm 断点
问题描述
我想在 PyCharm 中调试传递给我的 lambda 函数的值。
例如,如果我有以下代码,我希望能够在函数内部设置断点f
,并能够查看和的a
值b
:
f = lambda a, b: a + b
f(1, 2)
但是,如果我在第一行设置断点,它只会在定义 lambda 时中断,而不是在调用它时。
我的 PyCharm 版本是:
PyCharm 2018.3.3 (Professional Edition)
Build #PY-183.5153.39, built on January 10, 2019
Licensed to XXXXX
Subscription is active until October 4, 2019
For educational use only.
JRE: 1.8.0_152-release-1343-b26 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-45-generic
解决方案
Pycharm 的断点是每行的。它应该在定义 lambda 和调用它时都中断。如果您只想在 lambda 主体内打断,只需将其放在自己的行上并在该行上打断。
f = lambda a, b: (
● a + b
)
f(1, 2)
您还可以根据任意 Python 表达式设置断点。就像是
'a' in locals()
在这种情况下应该可以解决问题,即使您将 lambda 全部放在一行上。右键单击红色圆圈进行断点设置。
推荐阅读
- python - 在 kivy 语言的 TextInput wiget 中显示 python 代码中的变量
- mysql - SQL 子查询 + 多个内连接效率和错误
- memory-address - 从 GEM5 获取物理地址跟踪
- python - 如何使用 csv 模块将多个值的字典写入 csv?
- java - 我可以让 Bazel 始终在规则的测试中输出错误吗?
- python - 如何使用一个函数调用其他函数
- mysql - 如何两个表和计算
- r - ifelse(length(date)==1, date, otherdate) 在基础 R、dplyr 和 data.table 之间有所不同
- python - 带有 Typeerror 的 sqlalchemy 但 pyodbc 有效
- javascript - Dispatch 不将操作发送到减速器