Python 作用域

Python 作用域

变量只能到达定义它们的区域,称为作用域。可以将其视为可以使用变量的代码区域。Python 支持全局变量(可在整个程序中使用)和局部变量。

默认情况下,函数中声明的所有变量都是局部变量。要访问函数内的全局变量,需要显式定义“全局变量”。

示例

下面我们将研究局部变量和范围的使用。 (注意,下面的程序不工作

#!/usr/bin/python
 
def f(x,y):
    print('You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y))
    print('x * y = ' + str(x*y))
    z = 4 # cannot reach z, so THIS WON'T WORK
 
z = 3
f(3,2)

但这会工作:

#!/usr/bin/python
 
def f(x,y):
    z = 3
    print('You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y))
    print('x * y = ' + str(x*y))
    print(z) # can reach because variable z is defined in the function
 
f(3,2)

让我们进一步研究一下:

#!/usr/bin/python
 
def f(x,y,z):
    return x+y+z # this will return the sum because all variables are passed as parameters
 
sum = f(3,2,1)
print(sum)

在函数中调用函数

我们还可以从另一个函数中获取变量的内容:

#!/usr/bin/python
 
def highFive():
    return 5
 
def f(x,y):
    z = highFive() # we get the variable contents from highFive()
    return x+y+z # returns x+y+z. z is reachable becaue it is defined above
 
result = f(3,2)
print(result)

如果可以在代码中的任何地方能够访问到的变量,称为全局变量

如果只在作用域内能访问到的变量,我们称之为局部变量