zoukankan      html  css  js  c++  java
  • python命名空间和作用域

    一、命名空间

    定义:名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是独立没有关系的,一个命名空间中不能有重名,但是不同的命名空间可以重名而没有任何影响。

    分类:

    1、全局命名空间:

    在代码一运行时就创建的命名空间。

    2、局部命名空间:

    指在程序运行过程中开辟的临时空间,比如函数,类

    3、内置命名空间:

    在程序运行加载代码前,提前开辟用于存储常用内置方法的空间,比如input,print,str,list,都属于内置命名空间的变量

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

      

     二、作用域

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

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

    global关键字,nonlocal关键字。

    global:

      1,声明一个全局变量。

      2,在局部作用域想要对全局作用域的全局变量进行修改时,需要用到 global(限于字符串,数字)。

    nonlocal:

      1,不能修改全局变量。

      2,在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改变。

  • 相关阅读:
    【域控】获取域控用户
    【MongoDB】开启认证权限
    【MongoDB】 安装为windows services
    【 Quartz】使用 JobListener (任务监听器可实现) 我想在一个任务执行后在执行第二个任务怎么办呢
    【多路复用】I/O多路复用
    静态类和静态类成员
    C#
    response.redirect和server.Transfer的差别详解
    DataReader
    受管制的代码和强类型系统
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9489559.html
Copyright © 2011-2022 走看看