使用时在函数前加上@Tita
import logging
class Tita:
def __init__(self, func):
self._func = func
self._counter = {}
def __call__ (self, *args, **kwargs):
logging.debug("function {} args: {} start".format(self._func.__qualname__, args))
start = datetime.datetime.now()
res = self._func(*args, **kwargs)
end = datetime.datetime.now()
logging.debug("function {} cost:{}(s) args: {}".format(self._func.__qualname__, (end - start).total_seconds(), args))
return res
def __repr__(self):
'''Return the function's docstring.'''
return self.func.__doc__
def __get__(self, obj, objtype):
'''Support instance methods.'''
return functools.partial(self.__call__, obj)