- 当在函数中使用一个无限制型的名字时,Python查找三个作用域,局部的(Local),次之全局(
Global),再次之内置的(Built-in)——在名字被发现的第一个位置处停止。
- 当你在一个函数中给一个名字赋值(而不是只在一个表达式中引用它)时,Python总是在局部作
用域中生成或改变它,除非在该函数已对它进行了全局声明。
- 当在函数外部(例如,在一个模块顶层或交互提示符下)时,局部作用域与全局作用域一样,都
是一个模块的名字空间。
范例
#全局作用域
x=99 #x和func在模块中被赋值:全局的
def func(y): #y和z在函数中被赋值:局部的
# local scope
z=x+y #x没被赋值,所以它是全局的
return z
print func(1) #func在模块中:结果=100