您的位置:首页 > 编程语言 > Python开发

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 局部变量