代码之家  ›  专栏  ›  技术社区  ›  jss367

python:在if语句中间添加pdb

  •  0
  • jss367  · 技术社区  · 5 年前

    有没有办法在 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 遗失了。

    2 回复  |  直到 5 年前
        1
  •  1
  •   Nishant Florentin    5 年前

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

    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")
    
        2
  •  0
  •   Michael Butscher    5 年前

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

    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")