zoukankan      html  css  js  c++  java
  • 学习总结(十三)

    1.函数嵌套的定义

    概念:在一个函数的内部定义另一个函数

    函数嵌套的定义:

        1)函数(f1)想要使用(f2)的值,可以将f2直接定义到f1内部,这样就可以访问到f2的局部变量

         2)函数f2在嵌套后只能f1中使用,外部想要使用只能通过f1,只能把f2作为f1函数的返回值

         3)在外部也用同名的变量f1来接收f2函数的执行结果(f1函数的返回值),那么f2也就是可以在外部被调用

    2.global关键字

       作用:将局部变量提升为全局变量

                 1)全局变量没有同名变量,直接提升局部变量为全局变量

                  2)有同名全局变量,就是同一全局与局部的同名变量

                           如果局部想改变全局变量的值(发生地址的变化)可以用global声明变量

            

    3.nonlocal关键字

        作用:将局部的变量提升为嵌套局部变量

                 1.必须有同名嵌套局部,就是统一嵌套局部与局部的同名变量

                    ---如果局部想改变嵌套局部变量的值(发生地址的变化)可以用nonlocal声明该变量

        def  outer():

            num=666

              def inner():  

                   nonlocal num

              inner()

      outer()

    4.装饰器

           装饰器:满足开放封闭原则的一个闭包应用

    @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

  • 相关阅读:
    简单的C语言编译器--语法分析器
    简单的C语言编译器--词法分析器
    简单的C语言编译器--概述
    最短路径算法
    拓扑排序和关键路径
    图的连通性
    最小生成树
    图的搜索
    gcc O2优化选项对内嵌汇编以及函数递归调用的影响
    gcc 在c代码中内嵌汇编调用c函数: 只是证明曾经我来过
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10786386.html
Copyright © 2011-2022 走看看