变量

变量作用域
全局变量
标识符的作用域是定义为其声明在程序里的可应用范围,也就是变量的可见性
在一个模块中最高级别的变量有全局作用域
全局变量的一个特征是除非被删除掉,否则它们的存活到脚本运行结束,且对于所有的函数,它们的值都可以被访问

局部变量
局部变量只是暂时的存在,其局部变量就进入声明的作用域。在那一刻,一个新的局部变量名为那个对象创建了
一旦函数完成,框架被释放,变量将会离开作用域
如果局部与全局有相同名称的变量,那么函数运行时,局部变量的名称将会把全局变量的名称遮盖住
>>> x=4
>>> def foo():
...     x=10
...     print 'in foo,x=',x
...
>>> foo()
in foo,x= 10
>>> print 'in main,x=',x
in main,x= 4
>>>


global语句
因为全局变量的名字能被局部变量给遮盖掉,所以为了明确的引用一个以命名的全局变量,必须使用global语句
>>> x=4
>>> def foo():
...    global x
...    x=10
...    print 'in foo,x=',x
...
>>> foo()
in foo,x= 10
>>> print 'in main,x=',x
in main,x= 10
>>>
名字空间
任何时候,总有一道三个活动的区域(内建、全局、局部)
标识符的搜索顺序依次是局部、全局、内建
提到名字空间,可以想象是否有这个标识符
提到变量作用域,可以想象是否可以‘看见’这个标识符

原文地址:https://www.cnblogs.com/ghming/p/8432732.html