Python 中 global、nonlocal的使用
2014-01-15 10:12
513 查看
1.在学习python过程中很重要的一点需要记住:如果在函数内部定义了跟全局变量同名的变量,那么该变量将是局部变量,而全局变量的引用在该函数范围内将失效。
2. 使用global关键字,将函数内部的变量声明为全局变量。
即,全局变量也可以在函数内部声明。
3.nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量 (python 3.0 添加)
nonlocal 必须声明在外一层的def中,其他任何地方将会报错。
x = 9 def a(): x = 10 print x #x在此处是局部变量。 a() #10,
x =9 def b(): x +=1 print x #x在此处是局部变量,全局变量的引用失效,所以会报变量在使用前没有赋值的错误。 b() #UnboundLocalError: local variable 'x' referenced before assignment
2. 使用global关键字,将函数内部的变量声明为全局变量。
X=88 def a(): global X X +=1 print X a() #89
X=88 def b(): global Y Y +=X print Y b() #UnboundLocalError: local variable 'state' referenced before assignment
def b(): global Y Y = 9 print Y b() # 9
即,全局变量也可以在函数内部声明。
3.nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量 (python 3.0 添加)
def make_counter(): count = 0 def counter(): nonlocal count count += 1 return count return counter
nonlocal 必须声明在外一层的def中,其他任何地方将会报错。
相关文章推荐
- python global和nonlocal的使用
- python变量总结: 全局变量、局部变量、类变量、实例变量以及global和nonlocal关键字的使用示例
- python 中使用 global 引发了莫名其妙的问题
- python-地址值判断、可变不可变类型、+=含义、global使用、缺省、不定长参数
- python语法32[global与nonlocal比较]
- PYTHON 中使用 GLOBAL引发的一系列问题
- python使用全局变量(global)
- Python nonlocal 与 global 关键字解析
- Python3 关键字global和nonlocal
- python中global 和 nonlocal 的作用域
- python 的全局变量global变量使用
- python3中global 和 nonlocal 的作用域
- Python中global与nonlocal 声明
- python语法[global与nonlocal比较]
- Python 基础 —— global 与 nonlocal
- Python基础学习篇——Global全局变量的使用
- [python]global与nonlocal关键字
- python中global 和 nonlocal 的作用域
- Python基础学习篇——Global全局变量的使用
- [译]python中的global和nonlocal的实践