您可以始终使用decorator来跟踪调用了哪些函数。下面是一个示例,它允许您跟踪调用函数的嵌套级别:
class Tracker:
level = 0
def __init__(self, indent=2):
self.indent = indent
def __call__(self, fn):
def wrapper(*args, **kwargs):
print(' '*(self.indent * self.level) + '-' + fn.__name__)
self.level += 1
out = fn(*args, **kwargs)
self.level -= 1
return out
return wrapper
track = Tracker()
@track
def funct1():
res = funct2()
print(res)
@track
def funct2():
factor = 3
res = funct3(factor)
return(res)
@track
def funct3(factor):
res = 1 + 100*factor
return(res)
它使用类变量
level
indent
funct1
funct1()
# prints:
-funct1
-funct2
-funct3
# returns:
301
根据您希望如何保存输出,您可以将日志模块用于输出