首页 > 解决方案 > 在 Python lambda 函数中设置 PyCharm 断点

问题描述

我想在 PyCharm 中调试传递给我的 lambda 函数的值。

例如,如果我有以下代码,我希望能够在函数内部设置断点f,并能够查看和的ab

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

标签: pythonintellij-ideapycharm

解决方案


Pycharm 的断点是每行的。它应该在定义 lambda 和调用它时都中断。如果您只想在 lambda 主体内打断,只需将其放在自己的行上并在该行上打断。

  f = lambda a, b: (
●      a + b
  )
  f(1, 2)

您还可以根据任意 Python 表达式设置断点。就像是

'a' in locals()

在这种情况下应该可以解决问题,即使您将 lambda 全部放在一行上。右键单击红色圆圈进行断点设置。


推荐阅读