Python9-装饰器进阶-day12

wapers方法

def wahaha():
    '''
    sljfldsjflds
    :return:
    '''
    print('娃哈哈')
print(wahaha.__name__)  #查看字符串格式的函数名
from functools import wraps
def wrapper(func):  #func = login
    @wraps(func)
    def innner(*args,**kwargs):
        print('在被装饰的函数执行前做的事')
        ret = func(*args,**kwargs)
        print('在被装饰的函数执行后做的事')
        return ret
    return innner
@wrapper      #login = wrapper(login)
def login(day):
    '''这是一个放假通知'''
    print('全体放假%s'%day)
    return '好开心'
print(login.__name__)
print(login.__doc__)
ret = login(3)   #inner
print(ret)

login
这是一个放假通知
在被装饰的函数执行前做的事
全体放假3
在被装饰的函数执行后做的事
好开心

 装饰器进阶_带参数的装饰器

import time
FLAG = True
def timmer_out(FLAG):
    def timmer(func):
        def inner(*args,**kwargs):
            if FLAG:
                start = time.time()
                ret = func(*args,**kwargs)
                end = time.time()
                print(end - start)
                return ret
            else:
                ret = func(*args,**kwargs)
                return ret
        return inner
    return timmer
@timmer_out(FLAG)
def wahaha():
    time.sleep(0.1)
    print('hahahahahaha')
#@timer = timer_out(FLAG)
@timmer_out(FLAG)
def erguotou():
    time.sleep(0.2)
    print('erguotoutotutou')

wahaha()
erguotou()

hahahahahaha
0.1000058650970459
erguotoutotutou
0.2000112533569336

 
import time
FLAG = False
def timmer_out(FLAG):
    def timmer(func):
        def inner(*args,**kwargs):
            if FLAG:
                start = time.time()
                ret = func(*args,**kwargs)
                end = time.time()
                print(end - start)
                return ret
            else:
                ret = func(*args,**kwargs)
                return ret
        return inner
    return timmer
@timmer_out(FLAG)
def wahaha():
    time.sleep(0.1)
    print('hahahahahaha')
#@timer = timer_out(FLAG)
@timmer_out(FLAG)
def erguotou():
    time.sleep(0.2)
    print('erguotoutotutou')

wahaha()
erguotou()


hahahahahaha
erguotoutotutou

猜你喜欢

转载自www.cnblogs.com/zhangtengccie/p/10322880.html
今日推荐