总结: 1类装饰器用于类函数 __get__ 2.类装饰器用于普通函数, __call__ 3.e import time # 类装饰器用于类方法 class TimeitClass: def __init__(self, func): self.func = func def __get__(self, instance, owner): start_time = time.time() result = lambda *args, **kwargs: self.func(instance, *args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result class T: @TimeitClass def t(self): print("hugo boss") # T().t() # 类装饰器用于普通方法 class Timeit: def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): start_time = time.time() result = self.func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result @Timeit def t2(): print("t2") # t2() # 普通方法装饰器 def timeit(func): def _warp(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result return _warp @timeit def t3(): print("t3") class TestT3: @timeit def t4(self): print("t4") t3()
import time # 类装饰器用于类方法 class TimeitClass: def __init__(self, func): self.func = func def __get__(self, instance, owner): start_time = time.time() result = lambda *args, **kwargs: self.func(instance, *args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result class T: @TimeitClass def t(self): print("hugo boss") # T().t() # 类装饰器用于普通方法 class Timeit: def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): start_time = time.time() result = self.func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result @Timeit def t2(): print("t2") # t2() # 普通方法装饰器 def timeit(func): def _warp(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result return _warp @timeit def t3(): print("t3") class TestT3: @timeit def t4(self): print("t4") t3()
import time # 类装饰器用于类方法 class TimeitClass: def __init__(self, func): self.func = func def __get__(self, instance, owner): start_time = time.time() result = lambda *args, **kwargs: self.func(instance, *args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result class T: @TimeitClass def t(self): print("hugo boss") # T().t() # 类装饰器用于普通方法 class Timeit: def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): start_time = time.time() result = self.func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result @Timeit def t2(): print("t2") # t2() # 普通方法装饰器 def timeit(func): def _warp(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result return _warp @timeit def t3(): print("t3") class TestT3: @timeit def t4(self): print("t4") t3()
import time # 类装饰器用于类方法 class TimeitClass: def __init__(self, func): self.func = func def __get__(self, instance, owner): start_time = time.time() result = lambda *args, **kwargs: self.func(instance, *args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result class T: @TimeitClass def t(self): print("hugo boss") # T().t() # 类装饰器用于普通方法 class Timeit: def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): start_time = time.time() result = self.func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result @Timeit def t2(): print("t2") # t2() # 普通方法装饰器 def timeit(func): def _warp(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) elastic_time = time.time() - start_time print(elastic_time) return result return _warp @timeit def t3(): print("t3") class TestT3: @timeit def t4(self): print("t4") t3()