六、名称空间

名称空间

名称空间即存放名字与对象映射/绑定关系的地方。对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,del x表示清除该绑定关系。

在程序执行期间最多会存在三种名称空间

内建名称空间

伴随python解释器的启动/关闭而产生/回收,因而是第一个被加载的名称空间,用来存放一些内置的名字,比如内建函数名

print(max)
# <built-in function max>  built-in中文:内建

全局名称空间

伴随python文件的开始执行/执行完毕而产生/回收,是第二个被加载的名称空间,文件执行过程中产生的名字都会存放于该名称空间中,如下名字

import sys # 模块名sys

x=1 # 变量名x

if x == 1:
    y=2 # 变量名y

def foo(x): # 函数名foo
    y=1
    def bar():
        pass

Class Bar: # 类名Bar
    pass

局部名称空间

伴随函数的调用/结束而临时产生/回收,函数的形参、函数内定义的名字都会被存放于该名称空间中

def foo(x):
    y=3 # 调用函数时,才会执行函数代码,名字x和y都存放于该函数的局部名称空间中

名称空间的加载顺序是:内置名称空间->全局名称空间->局部名称空间,而查找一个名字,必须从三个名称空间之一找到

查找顺序为:局部名称空间->全局名称空间->内置名称空间。

posted @ 2021-05-24 22:26  zzwYYYYYY  阅读(46)  评论(0)    收藏  举报