Python函数中的局部变量和全局变量
2014-09-18 14:57
561 查看
局部变量
你在函数定义中声明的变量,他们与在函数外使用的其它同名变量没有任何关系,即变量名称对函数来说是局部的。这叫变量的范围。所有变量都有它们被声明的块的范围,从名称定义的点开始。局部变量定义举例:
x = 50 def func(x): print('x等于', x) x = 2 print('局部变量x改变为', x) func(x) print('x一直是', x)输出:
x等于50
局部变量x改变为2
x一直是50
它是如何工作的:
第一次,我们使用函数体中第一行打印变量x的值,Python使用在主块中,函数定义上声明的实参。
接下来,我们给x赋值为2,变量为x对我们的函数来说是局部变量,因此在函数中当我们改变x的值时,在主块中定义的变量x不受影响。
最后调用的print函数,显示在主块中定义的变量x,因此证实,它不受在前面调用函数的局部变量的影响。
使用全局声明
如果你想给在顶层的程序(即未在任何类型的范围如函数或类之中)定义的变量赋值,那么你必须告诉Python,变量不是局部的,而是全局的。我们使用global语句,没有global语句赋值给一个在函数外定义的变量是不可能的。您可以使用这些在函数外定义的变量的值(假设在函数内没有同名的变量)。然而,这并不鼓励,应该避免,因为这使程序的读者不清楚变量是在哪里定义的,使用 global 语句就非常清楚,变量定义在一个最外的块中。
使用全局变量的例子:
x = 50 def func(): global x print('x的值是', x) x = 2 print('全局变量x改为', x) func() print('x的值是', x)输出:
x的值是50
全局变量to改为2
x的值是2
它是如何工作的:
global语句用来声明x是全局变量,当我们在函数内给x赋值时,它的改变映射到我们在主块中使用的x的值。
用同样的global语句可以指定多个全局变量,比如: global x, y, z。
相关文章推荐
- Python3基础 当函数中的局部变量与全局变量同名了,各管各的
- Python的全局变量和局部变量详解——locals 和globals两个函数
- Python3基础 global关键字 使函数的局部变量升格为全局变量
- Python新手学习基础之函数-全局变量和局部变量
- 3.8 Python函数中的局部变量和全局变量
- Python新手学习基础之函数-全局变量和局部变量
- python基础(函数、局部变量、全局变量、文件操作)
- Python学习之函数(全局变量和局部变量)
- python3--函数(函数,全局变量和局部变量,递归函数)
- Python新手学习基础之函数-全局变量和局部变量
- python函数全局变量和局部变量
- python3函数中的全局变量与局部变量的分析与理解
- python 函数的局部变量和全局变量 global
- static作用(修饰函数、局部变量、全局变量)
- static作用(修饰函数、局部变量、全局变量) C/C++中static关键字详解
- static作用(修饰函数、局部变量、全局变量)
- python 在函数中使用全局变量的注意事项
- python 局部变量和全局变量 global
- static作用(修饰函数、局部变量、全局变量)
- Python学习笔记(2)-局部变量与全局变量