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

    一、命名空间

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

    分类:

    1、全局命名空间:

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

    2、局部命名空间:

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

    3、内置命名空间:

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

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

      

     二、作用域

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

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

    global关键字,nonlocal关键字。

    global:

      1,声明一个全局变量。

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

    nonlocal:

      1,不能修改全局变量。

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

  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9489559.html
Copyright © 2011-2022 走看看