有没有办法在没有方法定义的脚本中使用setTrace()函数? IE。
for i in range(1, 100):
print i
def traceit(frame, event, arg):
if event == "line":
lineno = frame.f_lineno
print "line", lineno
return traceit
sys.settrace(traceit)
因此,理想情况下,我希望在循环中执行的每次迭代/代码行上都调用trace函数。我已经使用以前具有方法定义的脚本完成了此操作,但是不确定如何在此实例中使用它。
最佳答案
settrace()实际上仅用于实现调试器。如果您使用它来调试该程序,则使用PDB可能会更好
根据文档,settrace()不会执行您想要的操作。
如果您真的想逐行进行此操作,请查看编译器包,该包可让您访问和修改Python编译器生成的AST抽象语法树。您应该能够使用它来插入对跟踪执行的函数的调用。