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)
如果可以在程式碼中的任何地方能夠訪問到的變數,稱為全域性變數。
如果只在作用域內能訪問到的變數,我們稱之為區域性變數。