在满足变量条件时设置断点

时间:2016-09-03 19:43:36

标签: python pdb

我们说我有以下代码:

def f(lst,k):
    if k % 5 == 0:
       lst.append(str(k+1))
    return k*len(lst)

def big_function():
    my_list = ["a","b","c","d"]
    s = 0
    for k in range(10):
        tmp = f(my_list,k)
        s += tmp
    return s

如果我运行它,函数my_list中的变量big_function将变为["a","b","c","d","6"]。让我们说以下是一个错误:

if k % 5 == 0:
    lst.append(str(k+1))

我并不打算修改my_list

有没有办法以类似python -m pdb my_script.py --condition "is_modified(my_list, scope = big_function)"的方式运行pdb,因此当lst.append(str(k+1))为5时,程序会在k行的调试提示中断。 / p>

关键是虽然这个特定的例子非常简单易于分析,但是在一个更大的函数中,很难跟踪一个变量被子函数修改的时候,我希望pdb为我做这个工作但是到目前为止,我没有成功。

0 个答案:

没有答案