0
点赞
收藏
分享

微信扫一扫

python 带参数装饰器

飞空之羽 2022-01-12 阅读 84
import time
import  random
from functools import wraps


def eat(name,content):
    begin_time=time.time()
    time.sleep(random.randrange(1,6))
    end_time=time.time()
    use_time=end_time-begin_time
    print(f" eat func use {use_time} s")


eat("xiaoming","测试")



print("====================================改造版本=================================================")




def time_it(func):#第一次装饰函数
    '''
    装饰器方法 time_it
    :param func:
    :return: 返回内部方法
    '''
    @wraps(func)
    def _wrapper(*args,**kwargs):
        '''
        内部方法
        :param args:
        :param kwargs:
        :return: 执行时间
        '''
        begin_time = time.time()
        result=func(*args,**kwargs)
        end_time = time.time()
        use_time = end_time - begin_time
        print(f"方法名称:{func.__name__} 用时:{use_time}")
        return result

    return  _wrapper


@time_it
def eat_v2(name,content):
    '''
    当前 eat_v2 方法,被装饰的方法
    :param name:
    :param content:
    :return:
    '''
    time.sleep(random.randrange(1, 6))
    print(f" {name} 吃 {content}")


eat_v2("小王","KFC")

@time_it
def add(x,y,z):
    time.sleep(1)
    return  x+y+z



print("=========================add 方法装饰=======================")

result=add(1,2,3)
print(f"执行结果:{result}")

举报

相关推荐

0 条评论