问题描述
我在 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。
对于给您带来的不便,我深表歉意。