python 装饰器

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

Leave a Reply

Name and Email Address are required fields.
Your email will not be published or shared with third parties.