先看官方文檔的一段話: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
命名空間的生命週期取決於對象的做用域,若是對象執行完成,則該命名空間的生命週期就結束。生命週期
所以,咱們沒法從外部命名空間方位內部命名空間的對象。作用域