在Python中,命名空间(namespace)和作用域(scope)是两个紧密相关但又有区别的概念,它们共同定义了程序中变量、函数等标识符的可见性和作用域
一、命名空间namespace
1.先看看官方文档的一段话: A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries
命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的
2.定义:
命名空间是一个从名称到对象的映射,它用于存储变量名及其对应的值。在Python中,每个模块、函数、类以及每个类的实例都有自己独立的命名空间。这意味着在不同的命名空间中,即使变量名相同,它们也代表不同的对象。命名空间的主要目的是避免命名冲突,使得每个标识符都能在其所属的命名空间中唯一地标识一个对象。
3.命名空间类型
Python中有三种主要的命名空间:
-
内置命名空间:包含了Python解释器自带的所有内置函数和变量。这个命名空间在Python程序启动时创建,并在程序的整个生命周期内都存在。
-
全局命名空间:在模块级别定义的变量和函数存储在全局命名空间中。这个命名空间在模块被导入时创建,并在模块被卸载时销毁。
-
局部命名空间:在函数、方法或代码块内部定义的变量和函数存储在局部命名空间中。这个命名空间在函数或方法被调用时创建,并在函数或方法执行完毕后销毁(