我想附加一個整型變量到任何存在的函數來記錄它被調用的次數。爲此,我寫下了以下裝飾器。修改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