九.Python_装饰器

Python_装饰器

import time #导入时间模块

#18.装饰器  函数
#作用:不修改目标函数,给目标函数附加不具有的功能
    #原则
    #不改变目标函数源代码
    #不改变目标函数的调用方式

#装饰器=高阶函数+函数嵌套+闭包

    #获取函数运行时间的装饰器函数
        # def timer(func):#获取函数
        #     def wrapper(*args,**kwargs):  #获取不定向方法参数
        #         start_time=time.time()#获取开始时间
        #         res=func(*args,**kwargs)    #执行函数
        #         stop_time=time.time()#获取结束时间
        #         print("函数运行时间为:%s"%(stop_time-start_time))#输出花耗时间
        #         return res#输出返回值
        #     return wrapper#将装饰器函数作为返回值返回给目标函数

    #循环函数并且在函数前后打印的装饰器
        # def sn(max):#接收@sn的参数
        #     def sn(fun):#接收函数
        #         def wraper(*args,**kwargs):#接收函数不定向参数
        #             res=0
        #             for i in range(max):#循环函数
        #                 print("First.....")
        #                 res+=fun(*args,**kwargs)
        #                 print("End.......")
        #             return res  #返回res接收的函数
        #         return wraper  #返回wraper函数
        #     return sn #返回_sn函数

    #测试函数
        # @sn(2)#循环两次cale函数
        # @timer#调用装饰器函数
        # def cale(l):
        #     res=0
        #     for i in l:
        #         time.sleep(0.1)
        #         res+=i
        #     return res
        #
        # print(cale(range(20)))

猜你喜欢

转载自blog.csdn.net/qq_39663113/article/details/85148921