我们说我有以下代码:
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为我做这个工作但是到目前为止,我没有成功。