Python函数局部变量详解:作用域及使用局部变量示例展示
侵权和删除

当您在函数定义中声明变量时,它们与函数外部名称的其他变量没有关系,也就是说,变量名称是该函数的本地。这称为变量的范围。所有变量的范围是它们所定义的块,从定义其名称的点开始。
使用本地变量
示例7.3使用本地变量
#!/usr/bin/python
#文件名:func_local.py
deffunc(x):
print'x是',x
x = 2
打印'改变的本地X to',x,x
x = 50
功能(x)
print'x仍然',x
(源文件:代码/func_local.py)
输出
$ python func_local.py
x是50
将本地X更改为2
x仍然50
它如何工作
在函数中,当我们首次使用x的值时,Python使用函数声明的形式参数的值。
接下来,我们将值2分配给x。 X是函数的局部变量。因此,当我们在函数中更改x的值时,主块中定义的x不会受到影响。
在上一个打印语句中,我们证明了主块中X的值确实不受影响。
使用全局语句
如果要将值分配给函数之外定义的变量,则必须告诉Python变量名称不是局部的,而是全局。我们使用全局语句来完成此功能。没有全局语句,就无法将值分配给函数之外定义的变量。
您可以使用定义函数之外变量的值(假设函数中没有相同名称的变量)。但是,我不鼓励您这样做,您应该尝试避免它,因为这使得定义变量的程序的读者不清楚它。使用全局语句可以清楚地表明该变量是在外部块中定义的。
示例7.4使用全局语句
#!/usr/bin/python
#文件名:func_global.py
deffunc():
globalx
print'x是',x
x = 2
打印'改变的本地X to',x,x
x = 50
func()
x的print'value is',x
(源文件:代码/func_global.py)
输出
$ python func_global.py
x是50
将全局x更改为2
x的值是2
它如何工作
全局语句用于声明X是全局的 - 因此,当我们在函数中为x分配值时,当我们在主块中使用X值时,也会反映此更改。
您可以使用相同的全局语句指定多个全局变量。例如Global X,Y,Z。