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

    一、命名空间

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

    分类:

    1、全局命名空间:

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

    2、局部命名空间:

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

    3、内置命名空间:

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

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

      

     二、作用域

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

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

    global关键字,nonlocal关键字。

    global:

      1,声明一个全局变量。

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

    nonlocal:

      1,不能修改全局变量。

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

  • 相关阅读:
    方式方法和思维技巧集合
    【NOIP/CSP2019】D2T1 Emiya 家今天的饭
    【NOIP/CSP2019】D1T2 括号树
    【网络流24】餐巾
    【NOIP2016】愤怒的小鸟
    结论和典例集合
    2020牛客寒假集训营第一场题解
    新生训练赛001题解
    The 2014 ACM-ICPC Asia Regional Contest Xi'an Site题解
    SDNU ACM-ICPC 2019 Competition For the End of Term(12-15)山师停训赛题解
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9489559.html
Copyright © 2011-2022 走看看