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

  • 相关阅读:
    使用python执行系统命令——subprocess
    python与数据库交互的模块pymysql
    爬虫实战_爬取豆瓣图书利用csv库存储
    正则表达式_爬取中国古诗词网与豆瓣热门图书
    双文件上传详解
    三.基础部分+asp网站搭建
    二.Google黑客语法
    主动信息收集(二)
    一.搜索引擎如何使用
    记录学习——算法时间复杂度求法
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10786386.html
Copyright © 2011-2022 走看看