Skip to main content

作用域

定义:就是作用的范围(也叫做名称空间);

按照生效的范围来看,又分为全局作用域和局部作用域。

命名空间:本质是从名称到对象的映射,一一对应的关系,一一字典来实现的。

a = 10 定义这个变量时,Python会申请内存空间存放10,然后将名字a与10绑定关系存放在名称空间中。

如何清除绑定关系? del a

名称空间:

内置名称空间 :随着Python解释器启动而产生,停止而回收。第一个被加载

全局的名称空间:随着所在执行文件,执行结束而回收。第二个被加载

局部名称空间:随着函数的调用而产生,结束而回收。如函数的参数、函数内定义的名字。

全局作用域:包含内置命名空间和全局命名空间

局部作用域:在函数内可以使用

Python查找变量的顺序:局部的命名空间--》全局命名空间-》内置命名空间

变量的作用域:

局部变量:函数内部定义的变量从定义位置开始到函数定义结束位置有效。

全局变量:函数外部定义的变量在整个文件中有效。

注意:函数间不能共享内部定义的变量格式;函数内可以使用全局变量

  • global关键字

global 关键字:将变量声明为全局变量

语法格式:global 变量名

这种声明只针对一些不可变对象的声明

  • nonlocal

nonlocal 关键字:将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量)