当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。
这称为变量的作用域。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
例子:
1 #!/usr/bin/python
2 # Filename: func_local.py
3
4 x = 505
6 def func(x):
7 print('x is', x)
8 x = 2
9 print('Changed local x to', x)
10
11 func(x)
12 print('x is still', x)
输出:
1 $ python func_local.py
2 x is 50
3 Changed local x to 2
4 x is still 50
如何工作:在函数中,我们第一次使用 x 的值的时候, Python 使用函数声明的形参的值。
接下来,我们把值 2 赋给 x 。 x 是函数的局部变量。所以,当我们在函数内改变 x 的值的时候,在主块中定义的 x 不受影响。
在最后一个 print 语句中,我们证明了主块中的 x 的值确实没有受到影响