zoukankan      html  css  js  c++  java
  • 知识总结和记录——函数进阶

    命名空间和作用域

    命名空间一共分为三种:

      全局命名空间

      局部命名空间

      内置命名空间

    三种命名空间之间的加载与取值顺序:

    加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载)

    作用域

    全局作用域:包含内置名称空间、全局名称空间,在整个文件的任意位置都能被引用、全局有效

    局部作用域:局部名称空间,只能在局部范围内生效

    globals和locals方法

    locals() 函数会以字典类型返回当前位置的全部局部变量。(只读)

    globals() 函数会以字典类型返回当前位置的全部全局变量。(更多在局部修改全局变量)

    nonlocal关键字

     # 1.外部必须有这个变量

    # 2.在内部函数声明nonlocal变量之前不能再出现同名变量

    # 3.内部修改这个变量如果想在外部有这个变量的第一层函数中生效

    闭包函数

    内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数

    #函数内部定义的函数称为内部函数

    def func():
        name = 'eva'
        def inner():
            print(name)
        return inner
    
    f = func()
    f()
    

    Settle dowm and change
  • 相关阅读:
    C++分数类
    2019 SDN大作业
    个人作业-软工实践总结
    2019 SDN上机第7次作业
    2019 SDN上机第6次作业
    2019 SDN课程阅读作业(2)
    个人作业--软件评测
    2019 SDN上机第5次作业
    2019 SDN上机第4次作业
    2019 SDN第一次阅读作业
  • 原文地址:https://www.cnblogs.com/CrazyDemo/p/10456428.html
Copyright © 2011-2022 走看看