装饰器的写法

2018-05-31  本文已影响0人  裴general

摘要

装饰器是在不修改原来函数的情况下,对函数增新的功能的一种方法
装饰器内可带参数
一个函数可以有多个装饰器

实现方法

1.原始方法

import time

def deco(func):
    def wrapper(*args, **kwargs):
        startTime = time.time()
        func(*args, **kwargs)
        endTime = time.time()
        msecs = (endTime - startTime)*1000
        print("time is %d ms" %msecs)
    return wrapper


@deco
def func(a,b):
    print("hello,here is a func for add :")
    time.sleep(1)
    print("result is %d" %(a+b))

2.类方法

class logging(object):
    def __init__(self, func):
        self.func = func

    def __call__(self, *args, **kwargs):
        print "[DEBUG]: enter function {func}()".format(
            func=self.func.__name__)
        return self.func(*args, **kwargs)
@logging
def say(something):
    print "say {}!".format(something)
上一篇 下一篇

猜你喜欢

热点阅读