Python中的局部全局与全局变量主要体现在函数内的变量与函数外的变量。
局部与全局就是变量的作用域(作用范围)。
当你在函数内部定义变量的时候,它们与函数外具有相同名称的变量没有任何关系,即变量对于函数来说是 局部 的。这也是这个变量的 作用域 。
所有的变量的作用域是它们被定义的块,从它们被定义的地方开始。
使用局部变量:
#!/usr/bin/env python
# Filename: func_local.py
# -*- encoding:utf-8 -*-
def func(x):
print 'x is', x
x = 2 # 定义函数内的变量
print 'Changed local x to', x
x = 50 # 这里定义了全局变量
func(x)
print 'x is still', x
输出结果:
x is 50
Changed local x to 2
x is still 50
在函数中,我们第一次使用的 x 的值的时候,Python使用函数声明的形参的值。
接着,我们把数值 2 赋值给 x 。x是函数func的局部变量,它的作用域只能在函数内部。所以,当我们改变 x 的值的时候,在主块中定义的 x 不受影响。
在最后的 print 语句中,证明了主块中的 x 的值确实受到影响。
使用 global 语句 声明全局变量:
如果你想要为一个定义在函数外的变量赋值(即想要在函数内改变主块中的变量),