import time
import datetime
from functools import wraps
class TimeIt:
def __init__(self,fn):
self._fn = fn
#self.__doc__ = fn.__doc__
#装饰一个类
self = wraps(fn)(self) #@wraps(fn)
#def self():
def __enter__(self):
self.start = datetime.datetime.now()
return self
def __call__(self, *args, **kwargs):
start = datetime.datetime.now()
ret = self._fn(*args,**kwargs)
delta = (datetime.datetime.now() - start).total_seconds()
print('call: {} took {}'.format(self._fn.__name__,delta))
return '{}{}'.format('call: ',ret)
def __exit__(self, exc_type, exc_val, exc_tb):
delta = (datetime.datetime.now()-self.start).total_seconds()
print('exit: {} took {}'.format(self._fn.__name__,delta) )
return
def logger(fn):
@wraps(fn)
def wrapper(*args,**kwargs):
实用:python中类装饰器的实现
最新推荐文章于 2024-05-16 08:35:41 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)