Python程序教程

您现在的位置是:首页 >  Python

当前栏目

python命名空间和作用域

python,命名,空间,作用域
2025-04-11 08:57:56 时间

python中的命名空间可以看作每个名称名称到对应对象的映射,是名称的集合。不同的命名空间可以在给定时间共存,但完全隔离。当启动python解释器时,会创建一个包含所有内置名称的命名空间,并且只要该解释器运行,命名空间就会存在,hence,内置的方法如:id(), print()始终可以在任何地方运行。

命名空间如何隔离:

作用域:

在任何时刻,程序都至少有三个嵌套作用域:

  1. 具有本地名称的当前函数作用域 local
  2. 具有全局名称的模块作用域 model
  3. 具有内置名称的最外部作用域

通过代码更清楚的理解作用域:

def fun1():
    a = 10
    def func2():
        a = 20
        print(a)
    func2()
    print(a)


a = 30
fun1()
print(a)
输出:
20
10
30

当global 变量存在时:

def fun1():
    global a
    a = 10

    def func2():
        global a
        a = 20
        print(a)
    func2()
    print(a)


a = 30
fun1()
print(a)
输出:
20
20
20
因为这里用的是global,变量名在内存中指向的都是一个变量global a,所以输出都是20。