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)

如果可以在程式碼中的任何地方能夠訪問到的變數,稱為全域性變數

如果只在作用域內能訪問到的變數,我們稱之為區域性變數