• 学习总结(十三)


    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

  • 相关阅读:
    百度mp3地址解密码
    VB 在EXE后附加信息
    截屏函数
    Base64和StrToByte
    The Android ION memory allocator, DMABUF is mentioned as well
    DDC EDID 介绍
    Memory management for graphic processors TTM的由来
    科普 写display driver的必看 How video card works [2D的四种主要操作]
    GEM vs TTM
    DMABUF 背景介绍文章 Sharing buffers between devices
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10786386.html
Copyright © 2020-2023  润新知