• python装饰器 语法与解读


    import time #加载time模块
    from functools import wraps #加载functools模块中的wraps函数
    
    
    def cost_time(old_fn):    # 注:cost_time是装饰器名 ,形参old_fn是要装饰的函数   装饰器最外层没有return,也就是不用返回的
       @wraps(old_fn)    #它主要作用就是接收到原函数中的注析,所以括号内也是上面形参一样的
      def inner(*args, **kwargs):  # inner它是cost_time这个装饰器的功能区,也就是要添加的功能在此写,它的形参为 *args, **kwargs  这两个,其实就是为了接收原函数中的参数        
            start_time = time.time()   #innser的代码,记录执行原函数时的时间
            res = old_fn(*args, **kwargs)  # 这个是原函数,结果由变量 res保存,函数名与cost_time形参相同,它的形参与inner的形参相同
            end_time = time.time()    #这个也是inner的代码 ,它记录原函数执行结束时的时间
            print("花费时间为:", end_time - start_time)  #运算并输出原函数执行所花费的时间
            return res  # 返回原函数的结果
    
        return inner   #返回inner ,这个返回值是固定的,也就是上面inner的函数名,
    
    
    @cost_time  #注:@后面跟的名字就是装饰器的名字 ,
    def kk():    #这个函数就是原函数,是要通过装饰器装饰的函数
        #这行是函数注明
        print('这就是原函数')
    
    
    kk()   #调用原函数,这样就自动进行装饰了.返回的结果就是这个函数执行所要花费的时间
    
  • 相关阅读:
    Manacher-模版题poj3974 hdu3068
    拓展kmp(带注释版)
    颓の第17周
    php 递归遍历目录带缩进
    php 递归遍历目录
    php session
    apache主机配置
    php环境配置的检测方法
    php 变量
    php MVC
  • 原文地址:https://www.cnblogs.com/jshy/p/9465540.html
Copyright © 2020-2023  润新知