I asked sometime前,但这个问题比较复杂。我有类的实例和不时调用实例的方法。例如:
class A(object): __COUNTER = 0 def method_1(self): ... def method_2(self): ... def method_N(self): ... inst = A() # call at one module inst.method_1() # call at other module inst.method_N()
当调用方法时我需要增加一个计数器__COUNTER
,但方法是有效的我需要减少计数器。实例初始化为__init__.py
并在某些模块中导入。
有人可以帮我吗?
谢谢!
答案 0 :(得分:0)
调整我的装饰器以在通话后再次递减计数器:
def increment_counter(method):
def wrapper(self, *args, **kw):
self._COUNTER += 1
try:
return method(self, *args, **kw)
finally:
self._COUNTER -= 1
return wrapper
finally
块将始终被调用,即使该方法导致异常被引发。