【问题标题】:Set a PyCharm breakpoint in a Python lambda function在 Python lambda 函数中设置 PyCharm 断点
【发布时间】:2019-07-20 18:08:51
【问题描述】:

我想在 Python 中的 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

【问题讨论】:

  • 无复制。调用我时 Pycharm 停止正常。
  • 您使用的是哪个版本的 PyCharm?你最近更新了吗?
  • 更新了 PyCharm 版本
  • 您可以打开调试器视图,选择<lambda> 框架,在右侧您可以看到用于调用 lambda 函数的变量的值。这种级别的调试有帮助吗?

标签: python intellij-idea pycharm


【解决方案1】:

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

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

您还可以根据任意 Python 表达式设置断点。类似的东西

'a' in locals()

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

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多