def tracing(f):
"""Enable tracing just within a function call."""
def globaltrace(frame,why,arg):
if why == "call": return localtrace
return None
def localtrace(frame, why, arg):
if why == "line":
fname = frame.f_code.co_filename
lineno = frame.f_lineno
base = os.path.basename(fname)
print("%s(%s): %s" % (base, lineno,
linecache.getline(fname, lineno)))
return localtrace
@wrap(f)
def wrapper(*args,**kw):
sys.settrace(globaltrace)
result = f(*args,**kw)
sys.settrace(None)
return result
return wrapper
评论列表
文章目录