Python命名空间是指变量存储的位置,每个变量都需要存储到内存中,而存储在内存中的变量需要分配一个唯一的标识符,这个标识符称之为命名空间。在Python中命名空间以字典的形式实现,它支持查找和更新操作,其中键为变量名,值为变量值。
Python中有三种不同的命名空间:内置命名空间(built-in),全局命名空间(global),局部命名空间(local)。
内置命名空间是Python解释器的一部分,包含了Python所有内置函数和异常。当解释器启动时,内置命名空间就被创建并初始化了。
全局命名空间是指模块级别的命名空间,它在模块定义时创建,模块中定义的函数、变量之类的都存在于该命名空间中。
局部命名空间可以在函数调用到的时候才创建,它是在函数调用时才会创建的,函数执行完毕后,该命名空间就被删除了。
- 访问命名空间中的变量
代码示例:
def example():
num = 10 # 局部命名空间变量
print(num)
num = 20 # 全局命名空间变量
example()
print(num)
输出结果如下:
10
20
解释:在example
函数中,变量num
是一个局部命名空间的变量。在全局命名空间中定义了变量num
,它的值为20。然后调用example()
函数,打印输出局部变量num
的值,输出结果为10。接着在程序的最后打印输出全局变量num
的值,输出结果为20。
- 修改命名空间中的变量
代码示例:
def example():
global num
num = 10 # 全局命名空间变量
print(num)
num = 20 # 全局命名空间变量
print(num)
example()
print(num)
输出结果如下:
20
10
10
解释:在example
函数中,通过global
关键字将变量num
声明为全局变量,并将变量的值修改为10。在全局命名空间中定义了变量num
,它的值为20。然后调用example()
函数,打印输出全局变量num
的值,输出结果为10。最后在程序的最后打印输出全局变量num
的值,输出结果为10。