Py学习  »  Python

python:在if语句中间添加pdb

jss367 • 6 年前 • 1903 次点击  

有没有办法在 else python中的语句?例如,我正在尝试:

a = 5
if a > 3:
    print("yes")
import pdb; pdb.set_trace()
else:
    print("no")

拥有 pdb.set_trace() 就在 其他的 语句导致语法错误。有办法解决这个问题吗?

编辑:这个例子是一个更大的案例的简化。我想在我有很多的地方使用它 elif 陈述,所以把它放在每个 if , 否则如果 其他的 不可取。下面是另一个例子:

if not root:
    root = node
pdb.set_trace()
elif node.val < root.val:
    ...
else:
    ...

我想在评估之前启动调试器 node.val 因为如果 val 遗失了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44363
文章 [ 2 ]  |  最新文章 6 年前
Michael Butscher
Reply   •   1 楼
Michael Butscher    7 年前

如果代码实际上是这样的:

a = 5
if a > 3:
    print("yes")
elif a > 2:
    print("maybe")
elif a > 1:
    print("not really")
else:
    print("no")

一个选项可以是添加 if 只需少量重写和缩进调整的级别

a = 5
if a > 3:
    print("yes")
else:
    import pdb; pdb.set_trace()

    if a > 2:
        print("maybe")
    elif a > 1:
        print("not really")
    else:
        print("no")
nishant
Reply   •   2 楼
nishant    7 年前

您可以这样覆盖两个分支:

a = 5
if a > 3:
    print("yes")
    import pdb; pdb.set_trace()
else:
    import pdb; pdb.set_trace()
    print("no")

或者把它放在 通过它。

a = 5
import pdb; pdb.set_trace()
if a > 3:
    print("yes")
else:
    print("no")