• python作用域问题


    今天出了个低级的错误,最后确定是作用域问题,特回顾知识点如下:

    在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。

    Python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。

    作用域的产生:

    1,只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。

    2,在作用域中定义的变量,一般只在作用域中有效。

    3,在if-elif-else、for-else、while、try-except/try-finally等关键字的语句块中并不会产生作用域

    作用域的类型:

    L(local)局部作用域 函数内的命名空间

    E(enclosing)嵌套作用域 外部嵌套函数的命名空间

    G(global)全局作用域 所在模块(文件)的命名空间

    B(built-in)内置作用域 Python内置模块的命名空间

    globalVar = 100      #全局作用域     
     
    def test_scope():
        enclosingVar = 200    #嵌套作用域
        def func():
            localVar = enclosingVar + 1 #局部作用域
            print(localVar)
     
    print(__name__)  #内置作用域
  • 相关阅读:
    elasticsearch之python操作
    Elasticsearch之性能优化
    Elasticsearch之基本使用
    Redis主从哨兵集群搭建
    Docker Swarm集群
    Elasticsearch之权限验证(Basic)
    docker之网络与数据管理
    docker之可视化工具
    基于Github gist的代码片段管理工具Lepton
    Redis工具之redis_rdb_tools
  • 原文地址:https://www.cnblogs.com/xcsg/p/10637949.html
Copyright © 2020-2023  润新知