• 函数04


    装饰器

      装饰器就是闭包函数的一种应用场景,也是闭包的核心应用场景

      一、什么是装饰器

      装饰器即为某个对象添加新功能的一种工具,对象可以是任意可调用的对象,目前我们学习的只有函数对象

      实现装饰器的方式有多种,但是前提不能修改被装饰对象的源代码以及调用方式。即开放封闭原则

      开放封闭原则

      开放封闭指的是对修改封闭,对扩展开放

      要求在扩展新功能时不能修改源代码,不能修改调用方式。

      二、装饰器的实现

      装饰器分为无参装饰器和有参装饰器

      无参装饰器的模板

      def outer(func):

        def wrapper(*args,**kwargs):

          # 新功能

          res = func(*args,**kwargs)

          return res

        return wrapper

      有参装饰器的模板

      def big_outer(arg):

        def outer(func):

          def wrapper(*args,**kwargs):

            # 新功能

            res = func(*args,**kwargs)

            return res

          return wrapper

        return outer

      三、装饰器的语法糖

      语法糖就是更简单的书写语法,仅仅是为了简化书写

      注意:函数必须先定义后使用所以使用语法糖时必须保证装饰器定义在被装饰函数之上

      四、叠加多个装饰器

      每个装饰器都提供了一个扩展的新功能,当我们要为同一个函数扩展多个新功能时可以为其叠加多个装饰器

      执行从上到下

      加载从下到上

      五、装饰器补充:wraps工具

      from functools import wraps

      提供了一个装饰器专门用于替换被装饰函数与装饰函数的文档注释

  • 相关阅读:
    hive sql常用整理-hive引擎设置
    hdfs数据到hbase过程
    phoenix表操作
    HBase describe table 参数说明
    HBase 常用Shell命令
    sqoop的基本语法详解及可能遇到的错误
    Linux maven 下 jar包下载不下来的解决方法
    Linu 修改maven的setting保护文件
    Mybatis generator 自动生成代码
    Springmvc mvc:exclude-mapping不拦截 无效
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10272046.html
Copyright © 2020-2023  润新知