使用条件断点进行 IntelliJ/PyCharm 调试:未定义函数参数

问题描述

我在 Mac 上使用 Python 3.9 观察到 IntelliJ 2020.03 中的以下奇怪行为(但这也发生在 Ubuntu 系统上的另一个 IntelliJ 版本上)。

如果我们考虑以下最小示例:

def foo(bar):
   pass

foo(False)

现在我在 IntelliJ 中的第 2 行设置了一个 条件 断点,条件为:

[bar for _ in range(1)]

当我现在在调试模式下运行脚本时,出现错误:

Error while evaluating expression: [bar for _ in range(1)]
Traceback (most recent call last):
  File "<string>",line 1,in <module>
  File "<string>",in <listcomp>
NameError: name 'bar' is not defined

所以我的问题很简单:为什么在生成器中没有定义 bar? (重现的关键点是在某些生成器中引用 bar,否则它被定义(当然?)

解决方法

遗憾的是,它已被确认为错误 https://youtrack.jetbrains.com/issue/PY-47695

对于给您带来的不便,我深表歉意。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...