• DAY12学习笔记


      装饰器

        什么是装饰器

          器->工具。

          装饰->指的是为被装饰对象添加新功能。

          装饰器本身可以是任意可调用的对象->函数。

          被装饰对象也可以是任意可调用的对象->函数。

          目标:写一个函数来为另一个函数添加新功能。

        为何要用装饰器

          开放封闭原则:软件一旦上线。就对修改封闭,对扩展开放。

            对修改封闭:

              不能修改功能的源代码。

              也不能修改代码的调用方式。

            对扩展开放:

              可以为原有功能添加新的功能。

          用装饰器的目的就是在不修改功能源代码以及调用方式的前提下,为其添加新的功能。

        如何用装饰器

          利用两层闭包函数为核心语法为程序实现某些功能。     

        装饰器的语法糖@

          @语法糖的名字要在被装饰对象的正上方一行单独写入。

        有参装饰器

          模板:def outter2(xxx,yyy):

               def outter(func):

                 def wrapper(*args,**kwargs):

                   res=func(*args,**kwargs)

                   print(xxx) print(yyy)

                   return res

                 return wrapper

               return outter

          在传值已经饱满,无法在进行传值的情况下,利用添加一层闭包函数来实现目的。

        global和nonlocal

          global:在局部声明变量为全局变量,用来在局部修改全局变量。

          nonlocal:在局部中声明变量是外层函数的变量,无法受全局变量影响。

  • 相关阅读:
    戴尔笔记本win8.1+UEFI下安装Ubuntu14.04过程记录
    socketpair的使用
    上传App时遇IDFA错误问题
    1-4标签的语法
    TCP协议中的三次握手和四次挥手(图解)
    TsFltMgr.sys系统蓝屏的原因就在于QQ电脑管家!
    STL vector使用方法介绍
    史上最强视频站点真实地址解析
    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper
    ASP.NET——验证码的制作
  • 原文地址:https://www.cnblogs.com/lipengjia/p/9714877.html
Copyright © 2020-2023  润新知