#第七步:带有参数的装饰器 #两个基本函数用同一个装饰器装饰 def outer(arg): print(arg) #这是装饰器的代码 def kuozhan(func): print(func) #func接收的依然是eat和chifan #未来的eat函数 def neweat(): # 扩展功能1 print('饭前洗洗手') # 调用基本函数 func() # 扩展功能2 print('饭后溜溜腿') def newdrink(): # 扩展功能1 print('酒前真君子') # 调用…
#第五步:带有参数的装饰器 #用于扩展基本函数的函数 def kuozhan(func): #内部函数(扩展之后的eat函数) #5由于调用的时候传了两个参数,未来的eat函数没有参数接收 #5报错的时候显示neweat没有形参接收,但是给了两个实参 #5所以需要添加两个形参接收shui,na def neweat(shui,na):#5调用的杨羊传到了shui,na #4以下三步就是扩展之后的功能,于是我们把这三个哥们做成一个函数 #4取名叫做neweat #扩展功能1 print('饭前要洗…
#第五步:带有返回值的装饰器 把第四步复制过来 #用于扩展基本函数的函数 def kuozhan(func): #内部函数(扩展之后的eat函数) def neweat(): #以下三步就是扩展之后的功能,于是我们把这三个哥们做成一个函数 #取名叫做neweat #扩展功能1 print('饭前要洗手') #调用基本函数 result1 = func() #扩展功能2 print('饭后溜一圈') #未来的eat函数没有返回值,所以在最后调用的时候返回值为None #为neweat添加返回值 r…
一个小demo def set_level(level_num): def set_func(func): def call_func(*args, **kwargs): if level_num == 1: print("----权限级别1,验证----") elif level_num == 2: print("----权限级别2,验证----") return func() return call_func return set_func # 带有参数的装饰器…
# 使用装饰器对有返回值的函数进行装饰# def func(functionName): # print('---func-1----') # def func_in(): # print("----func_in---1-") # x = functionName() #保存返回来的hahah # print("----func_in---2-") # return x # print('---func-2----') # return func_in # @fu…
#第六步:带有收集参数的函数的装饰器 #装饰器函数 def kuozhan(func): #内部函数(扩展之后的eat函数) def neweat(*w,**n): #以下三步就是扩展之后的功能,于是我们把这三个哥们做成一个函数 #取名叫做neweat #扩展功能1 print('饭前要洗手') #调用基本函数 func(*w,**n) #扩展功能2 print('饭后溜一圈') return neweat #基本函数 @kuozhan def eat(*who,**nums): print('…
def wrapper_out(flag): # 装饰器本身的参数 def wrapper(fn): # 目标函数 def inner(*args, **kwargs): # 目标函数执行需要的参数 if flag == True: print("问问金老板. 行情怎么样啊") ret = fn(*args, **kwargs) # 在执行目标函数之前 print("金老板骗我. 恨你") return ret else: ret = fn(*args, **kwa…
场景时这样的,我有个一大堆任务,我要给这些任务计时,入库.就需要一个带有参数的装饰器来记录任务名称, 在任务执行前和执行之后都需要记录任务当时执行的时刻. #-*- encoding=utf-8 -*- from functools import wraps def task_logging(taskname): def func_wrapper(func): @wraps(func) def return_wrapper(*args, **wkargs): # 函数通过装饰起参数给装饰器传送参…
装饰器:在不改变原有代码的情况下,为该原函数扩展新功能特征:返回新函数,替换旧函数语法:@ 语法糖 1.装饰器原型 #例1: def kuozhan(func):    def newfunc():        print("吃饭前,无精打采")        func()        print("吃饭后,精神百倍")    return newfuncdef func():    print("我是个吃货")#手动的 把新函数 赋值 给…
装饰器: 需求----> 写一个功能,测试其他同事函数的调用效率. 第一版:功能版 import time def func(): time.sleep(0.2) print('非常复杂') def func1(): time.sleep(0.3) print('超级复杂') # print(time.time()) start_time = time.time() func() end_time = time.time() print('此函数的执行效率为%s' % (end_time - s…