我想附加一个整型变量到任何存在的函数来记录它被调用的次数。为此,我写下了以下装饰器。修改Python中的freevars不起作用?
def count(fun):
n = 0
def wrapper(*args, **kwargs):
n += 1
print "%s called %d times" % (fun.func_name, n)
fun(*args, **kwargs)
return wrapper
但它不起作用,因为内部函数包装中的n不被视为外部作用域计数中的相同n。我想知道为什么会这样?
我知道我可以绕过这个限制的一种方式是使用像列表这样的可变容器来放入数字n。
是的,我正在使用Python2,我们的团队明年将切换到Python3。 – PeopleMoutainPeopleSea