간단한 클래스가 있다고 가정합니다.
class TestClass:
def doSomething(self):
print 'Did something'
doSomething
메서드를 장식하고 싶습니다. 예를 들어 호출 수를 계산합니다
class SimpleDecorator(object):
def __init__(self,func):
self.func=func
self.count=0
def __get__(self,obj,objtype=None):
return MethodType(self,obj,objtype)
def __call__(self,*args,**kwargs):
self.count+=1
return self.func(*args,**kwargs)
이제 이것은 장식 된 메서드에 대한 호출 수를 계산합니다. 인스턴스 별 카운터를 갖고 싶습니다. after
foo1=TestClass()
foo1.doSomething()
foo2=TestClass()
foo1.doSomething.count
은 1이고 foo2.doSomething.count
는 0입니다. 내가 이해하는 바에 따르면 데코레이터를 사용하면 불가능합니다. . 이러한 동작을 수행 할 수있는 방법이 있습니까?