python变量作用域

变量的作用域是定义为其声明在程序的可应用范围,或者说你可以在程序里的那些部分去访问定义的一个变量。


全局变量与局部变量

定义在函数内的变量有局部作用域,在一个模块中最高级别的变量有全>局作用域。

global_str = 'foo'
def foo():
    local_str = "bar"
    return global_str + local_str

上面的例子中,global_str为全局变量,local_str为局部变量,foo()函数可以对全局变量和局部变量并行访问。

  • 搜索一个变量,python先从局部作用域开始搜索
  • 局部作用域没有搜索到变量会在全局作用域搜索,如果也没有搜索到会抛出NameError异常

global语句

将一个全局变量申明在函数体内,全局变量会被局部变量覆盖掉

global_str = 'foo'
def foo():
    global global_str
    local_str = "bar"
    global_str = "test"
    return global_str + local_str
print(foo())

闭包

如果在一个内部函数里,对在外部作用域的变量的引用,那么内部函数被认为是闭包

作用域和lambda

你可能感兴趣的:(python变量作用域)