zoukankan      html  css  js  c++  java
  • day13

             今日所学

    1,函数的嵌套定义

    2,globe   nonlocal关键字

    3,闭包及闭包的运用场景

    4,装饰器

    函数的嵌套:

    在一个函数的内部定义另一个函数

    1,函数2想直接使用1函数的局部变量,可以讲2直接定义到1的内部,2就可以直接访问1的变量

    2,函数2名字就变成1 的局部变量,正常只能在1中使用,想在外部使用,可以讲2函数对象作为1函数的返回值

    3在外部也用同名的变量2来接受1函数的执行结果,2就是可以在外部被调用

    开放封闭原则:在不修改源代码与调用方式的情况下为函数添加新功能

    1,不能修改源代码

          无权修改,功能不持有,修改的位置多个,需要一一修改

     2,     不能修改原函数的调用方式

        修改调用方式的弊端,原项目

    装饰器

    定义:满足开放封闭原则的一个闭包应用

    @outer 语法来调用outer,规定被装饰的函数对象,参数固定为一个,接受被装饰的函数对象

    def outer(func)

           不能确定被装饰的函数的参数:来着不拒,用可变长来接受

             def inner(*args , **kwargs):

                         pass         新功能位

                    res =func(*args,**kwargs)       解压带给原功能

                         pass         新功能位

                         return    res

                return    inner

    使用装饰器(outer),得到新功能(inner)

    用被装饰的函数名去接受装饰器的执行结果,调用装饰器时传入被装饰的函数对象

            @outer     fn = outer(fn) =inner

           def fn():   pass

           本质再调用闭包

  • 相关阅读:
    CentOS/RedHat安装Python3
    Hash校验工具、MD5 SHA1 SHA256命令行工具
    centos如何安装Python3
    iOS之UI--涂鸦画板实例
    iOS之UI--Quartz2D的入门应用-- 重绘下载圆形进度条
    Eclipse导入项目: No projects are found to import
    在MAC平台下使用Eclipse出现了中文乱码
    C语言错误之--初始值(低级错误)
    iOS开发之duplicate symbols for architecture x86_64错误
    C语言的传值与传址调用
  • 原文地址:https://www.cnblogs.com/Fzhiyuan/p/10787357.html
Copyright © 2011-2022 走看看