Python 中的全域性變數和區域性變數?


有兩種型別的變數:全域性變數和區域性變數。全域性變數的作用域是整個程式,而區域性變數的作用域僅限於其定義所在的函式。

示例

def func(): x = "Python" s = "test" print(x) print(s) s = "Tutorialspoint" print(s) func() print(x)

輸出

在上面的程式中 - x 是一個區域性變數,而 s 是一個全域性變數,我們只能在定義它的函式 (func()) 內部訪問區域性變數,嘗試在它的作用域 (func()) 外部呼叫區域性變數將引發如下所示的錯誤:

Python
test
Tutorialspoint
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    print(x)
NameError: name 'x' is not defined

但是,我們可以在程式中的任何地方呼叫全域性變數,包括程式中定義的函式 (func())。

區域性變數

區域性變數只能在其作用域內訪問(例如上面的 func())。例如在下面的程式中 - 有兩個區域性變數 - xy

示例

def sum(x,y): sum = x + y return sum print(sum(5, 10))

輸出

變數 xy 只能在函式 sum() 內部使用,並且它們在函式外部不存在。因此,嘗試在它們的作用域之外使用區域性變數可能會引發 NameError。因此,顯然下面的行將無法工作。

File "main.py", line 2
   sum = x + y
   ^
IndentationError: expected an indented block

全域性變數

全域性變數可以在程式的任何地方使用,因為它的作用域是整個程式。讓我們透過一個非常簡單的示例來理解全域性變數:

示例

z = 25 def func(): global z print(z) z=20 func() print(z)

輸出

25
20

呼叫 func() 後,全域性變數的值將對整個程式發生更改。下面的示例顯示了局部變數、全域性變數和函式引數的組合:

def func(x, y): global a a = 45 x,y = y,x b = 33 b = 17 c = 100 print(a,b,x,y) a,b,x,y = 3,15,3,4 func(9,81) print (a)

輸出

45 17 81 9
3

從這裡開始學習 Python:Python 教程

更新於: 2023-08-31

12K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告