• 装饰器


    装饰器

    • 封闭:已实现的功能代码块不应该被修改
    • 开放:对现有功能的扩展开放
    #装饰器编写格式
    def 外层函数(参数):
        def 内层函数(*args,**kwargs):
            # 参数(*args,**kwargs)
            return 参数(*args,**kwargs)
        return 内层函数
    
    #装饰器应用格式0
    @外层函数
    def 需要被装饰的函数():
        pass
    
    需要被装饰的函数()
    #装饰器标准写法
    def x(func):
        def y():
            func()
            #或者ret = func()
                # return ret
        return y
    
    @x
    def z():
        pass
    
    z()

    应用例子:

    import time
    def run(arg):
        def timmer():
            print("timmer函数执行开始
    ")
            start_time = time.time()
            arg()
            stop_time = time.time()
            run_time =  stop_time - start_time
            print(run_time,"
    ")
            print("timmer函数执行完毕")
        return timmer
    
    # 第一步:执行run函数并将下面被装饰的函数作为参数传递到run函数里。相当于:run(func),r
    #         run函数的形参arg指向了func里面的代码
    # 第二步:将run函数的返回值重新赋值给下面被装饰的func函数名。相当于:func = run(func)
    @run
    def func():
        print("正在执行func函数")
        time.sleep(1)
    
    func()
  • 相关阅读:
    MySQL中redo日志
    MySQL中事务的分类
    MySQL中事务的概述ACID了解
    MySQL中UNSIGNED和ZEROFILL的介绍
    MySQL中死锁
    谈谈当前火热的“车联网”
    线性代数回顾:矩阵运算
    Spark作业调度阶段分析
    Spark——共享变量
    Spark编译与打包
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/11701308.html
Copyright © 2020-2023  润新知