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
  • 相关阅读:
    js创建map
    [POJ 1911] 棋盘
    [POJ 2176] Folding
    [POJ 1014] Dividing
    [洛谷P3486]POI2009 KON-Ticket Inspector
    [洛谷P1131] ZJOI2007 时态同步
    [洛谷P1133] 教主的花园
    [洛谷P1095]NOIP2007 普及组T3 守望者的逃离
    [POJ1187] 陨石的秘密
    [POJ1772] Substract
  • 原文地址:https://www.cnblogs.com/CrazyDemo/p/10456428.html
Copyright © 2011-2022 走看看