先看官方文档的一段话:A anmespace is a mapping from names to objects. Most namespaces are currently implemented as Python dictionaries.python
命名空间(Namespace)是从名称到对象的映射。各个命名空间是独立的,没有任何关系,因此一个命名空间不能有重名,但不一样的命名空间是能够重名而没有任何影响。app
咱们举一个计算机系统中搞得例子,一个文件夹(目录)中能够包含多个文件夹,每一个文件夹不能有相同的文件名,但不一样文件夹中的文件能够重名。ide
通常有三种命名空间:函数
命名空间查找顺序:ui
假设咱们要使用变量runoob,则Python的查找顺序为:局部的命名空间->全局命名空间->内置命名空间spa
若是找不到变量runoob,它将放弃查找并引起一个NameError异常:对象
NameError: name 'runoob' is not defined.
命名空间的生命周期:blog
命名空间的生命周期取决于对象的做用域,若是对象执行完成,则该命名空间的生命周期就结束。生命周期
所以,咱们没法从外部命名空间方位内部命名空间的对象。作用域