如何在 Python 中不使用全局变量来跟踪递归调用的次数。例如,如何修改以下函数来跟踪调用次数?
def f(n):
if n == 1:
return 1
else:
return n * f(n-1)
print f(5)
这是一个不使用全局的巧妙技巧:您可以将计数器隐藏在函数本身中。
def f(n):
f.count += 1
if n == 1:
return 1
else:
return n * f(n-1)
之后:
>>> f.count = 0 # initialize the counter
>>> f(5)
120
>>> f.count
5
>>> f(30)
265252859812191058636308480000000L
>>> f.count
35
无论如何,这可以处理“所有呼叫”的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)