Python中的作用域规则:LGB规则

  1. 当在函数中使用一个无限制型的名字时,Python查找三个作用域,局部的(Local),次之全局(

Global),再次之内置的(Built-in)——在名字被发现的第一个位置处停止。

  1. 当你在一个函数中给一个名字赋值(而不是只在一个表达式中引用它)时,Python总是在局部作

用域中生成或改变它,除非在该函数已对它进行了全局声明。

  1. 当在函数外部(例如,在一个模块顶层或交互提示符下)时,局部作用域与全局作用域一样,都

是一个模块的名字空间。

范例
#全局作用域
x=99                #x和func在模块中被赋值:全局的
                    
def func(y):        #y和z在函数中被赋值:局部的
    # local scope
    z=x+y           #x没被赋值,所以它是全局的
    return z

print func(1)             #func在模块中:结果=100

你可能感兴趣的:(Python中的作用域规则:LGB规则)