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

  • 相关阅读:
    云网站 SEO
    GraphQL 开发原则
    软件秘钥实现
    删除文件
    GUI 桌面程序开发
    chcon SeLinux
    正确使用 cookie 的 path
    struts 2用DomainModel接收参数
    Struts 2动态调用方法(DMI)
    struts 2actionwildcard 通配符配置
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10786386.html
Copyright © 2011-2022 走看看