问题是,如何配置Python调试器以在控制台中向我显示正在调用的函数?
为了不看一切闪现,需要在函数调用之间延迟。
答案 0 :(得分:2)
如果要监视何时调用某些特定功能, 你可以使用这个装饰器:
import functools
def trace(f):
@functools.wraps(f)
def wrapper(*arg,**kw):
'''This decorator shows how the function was called'''
arg_str=','.join(['%r'%a for a in arg]+['%s=%s'%(key,kw[key]) for key in kw])
print "%s(%s)" % (f.__name__, arg_str)
return f(*arg, **kw)
return wrapper
您可以这样使用它:
@trace # <--- decorator your functions with the @trace decorator
def foo(x,y):
# do stuff
当你运行程序时,每次调用foo(x,y)时,你都会看到 函数调用在控制台中使用其参数的值:
foo(y=(0, 1, 2),x=(0, 0, 0))
答案 1 :(得分:1)
您可以使用备用pydb调试程序。您可以使用pydb --fntrace --batch <scriptname>
调用它来获取函数跟踪。
对于“闪烁”,在ANSI终端上使用常用工具,如Ctrl-S / Ctrl-Q,或重定向到文件。