1.装饰器
实质是一个函数
参数是你要装饰的函数名
返回的是装饰完的函数名
作用:给已经存在的对象增加额外的功能
想象下我们要实现这样的一个功能,执行完test后输出test执行了多长时间。如果有N多类似的需求,要在每个函数里进行统计,会很麻烦,这个时候就要用到装饰器了。
import time def logtime(cls): def wrapper(me_instance): start = time.time() cls(me_instance) end = time.time() print('time:' + str(end - start)) return wrapper class TestClass: @logtime def test(self): time.sleep(1.0) test = TestClass() test.test()
http://www.waitingfy.com/archives/3505
def decrator(*dargs, **dkwargs): def waper(func): def _wrapper(*args, **kwargs): print(dargs, dkwargs) return func(*args, **kwargs) return _wrapper return waper def noarg(func): def tmp(*args, **kwargs): return func(*args, **kwargs) return tmp @decrator(1, a = 2) def add(a, b): return a + b @noarg def add1(a, b): return a + b
还有带参数的装饰器和不带参数的装饰器
3505