gpt4 book ai didi

python - 如何在pycharm中中断 `pass`

转载 作者:太空狗 更新时间:2023-10-30 00:58:53 26 4
gpt4 key购买 nike

在 pycharm 中,我想在调试期间中断一个什么都不做的断点。我该怎么做?

例如,我想在 pass 语句上打断:

for i in range(999999):
if i == 6232:
pass

如果我在pass 上设置断点,调试器不会在那里中断。到目前为止,我能做的最接近的事情是组成一些未使用的变量名,并为其分配一个无意义的值,这样我就可以在该行上设置一个断点:

for i in range(999999):
if i == 6232:
foobar_unused_variable = "At least I can set a breakpoint on this line."

最佳答案

这个问题超越了 PyCharm。这是一个 Python 问题。当编译器编译 AST到字节码,它甚至不编译 Pass node ;它只是跳过它。 pass 关键字的预期目的是防止编译器提示什么否则会是空的(因此在语法上无效) block 。因此,由于调试器对字节码进行操作,它永远不会知道省略的 pass 语句,因此尽管包含 pass 语句的行在某种程度上在技术上是有效的断点位置,它永远不会触发。

有几个选项:

  • pass 替换为对内置 breakpoint function 的调用.
  • pass 替换为无效果的语句(例如 0print(end=''))并中断它。完成后一定要将它们移除。然而,在某些 Python 实现中,这些可能会也可能不会被优化掉。
  • 设置 conditional breakpoint在条件检查上而不是在 body 内打破(假设打破条件没有有意义的副作用)。

关于python - 如何在pycharm中中断 `pass`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47625526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com