命名空间查找顺序
命名空间的三种形式
1.内置命名空间(Built-in names): 用于存放Python 的内置函数的空间,比如,print,input等不需要定义即可使用的函数就处在内置命名空间。
2.全局命名空间(Global names):模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。
3.局部命名空间(Local names):函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。在函数内定义的局部变量,在函数执行结束后就会失效,即无法在函数外直接调用函数内定义的变量。
##命名空间查找顺序
局部命名空间→全局命名空间→内置命名空间。
命名空间的生命周期
命名空间的生命周期取决于对象的作用域,如果对象执行完成,则该命名空间的生命周期就结束。
示例
# 在全局命名空间中给变量a赋值,令a=1。
a = 1
# 在定义函数“function1”的同时就为其创建了一个独立的局部命名空间。
def function1():
# 变量b在局部命名空间中被赋值“a+1”。
b = a + 1
# 此处所使用的print函数就是源自Python的内置命名空间。
print(b)
# 执行function1时,计算机会优先找到function1局部命名空间中的“b=a+1”,然后再找到全局命名空间中的“a=1”,最后找到内置命名空间中的print将b的值打印出来。
function1()