另一個塊可以訪問的變數稱為全局變數。它可以在塊外部定義。換句話說,全局變數是在函數外部定義的,我們可以在函數內部訪問它。
另一方面,在一個塊中定義並在該塊中可用的變數稱為局部變數。這樣的變數只能在定義的塊中訪問。
讓我們理解以下局部和全局變數的例子。
示例-局部變數
# example of local variable
def sum():
a = 10 # local variables
b = 20
c = a + b
print("the sum is:", c)
sum() # function calling
輸出:
The sum is: 30
解釋:
變數是在函數內部定義的,它只能在已定義的函數中使用,因此變數的性質稱為局部變數。我們無法在其他功能中訪問它們。
為了克服這個問題,我們使用全局變數。讓我們理解一個全局變數的例子。
示例-
# example of a global variable
a = 20 # defined outside the function
b = 10
def sum():
c = a + b # Using global variables
print("The sum is:", c)
def sub():
d = a - b # using global variables
print("The sub is:", d)
sum() # function calling
sub()
輸出:
The sum is: 30
The sub is: 10
解釋:
在上面的代碼中,我們在函數外定義了兩個全局變數 a 和 b。我們在 sum()和 sub()函數中使用了它們。當我們調用時,這兩個函數都返回結果。
如果我們定義相同名稱的局部變數,它將列印函數內部的值,然後列印全局變數值。
示例- 3:
def msg():
m = "Hello, how are you?"
print(m)
msg()
m = "I am fine" # global scope
print(m)
輸出:
Hello, how are you?
I am fine
解釋:
我們已經定義了與全局變數同名的局部變數;首先,它列印局部變數,然後列印全局變數值。
全球關鍵詞
Python 提供了全局關鍵字,用於修改函數內部全局變數的值。當我們想要改變全局變數的值或分配一些其他值時,這是有益的。下面是一些定義全局變數的規則。
全局關鍵詞規則
- 如果該值被定義為函數輸出,它將自動成為全局變數或其全局範圍。
- 全局關鍵字用於聲明函數內部的全局變數。
- 我們不需要使用全局關鍵字來聲明函數外部的全局變數。
- 函數內部有引用的變數是隱式全局。
示例-沒有全局關鍵字
# The example of without using the global keyword
c = 10
def mul():
# Multiply by 10
c = c * 10
print(c)
mul()
輸出:
line 8, in mul
c = c * 10
UnboundLocalError: local variable 'c' referenced before assignment
解釋:
上面的代碼拋出了一個錯誤,因為我們試圖給全局變數賦值。我們可以使用 global 關鍵字修改函數內部的 global value 的值。
示例-帶有全局關鍵字
# The example using the global keyword
c = 10
def mul():
global c
# Multiply by 10
c = c * 10
print("The value inside function: ", c)
mul()
print('The value outside the function: ', c)
輸出:
The value inside function: 100
The value outside the function: 100
解釋:
在上面的例子中,我們已經使用全局關鍵字定義了 mul()函數中的變數 c。c 的值乘以 10;因此,它返回了 200。我們可以在輸出中看到,函數內部值的變化反映在全局變數外部的值中。
Python 模塊中的全局變數
全局關鍵字的好處是創建全局變數,並在不同的模塊之間共享它們。例如-我們創建了一個由全局變數組成的名稱. py 。如果我們改變這些變數,那麼這種改變將無處不在。讓我們理解下面的例子。
代碼- 1: 創建一個 name.py 文件來存儲全局變數。
a = 10
b = 20
msg = "Hello World"
代碼- 2: 創建一個 change.py 文件來修改全局變數。
import name
name.a = 15
name.b = 26
name.msg = "Welcome to JavaTpoint"
這裡,我們修改了 a、b 和 msg 的值。這些全局變數是在 name.py 文件中定義的,我們導入了 name,並訪問了這些變數。
代碼- 3: 製作一個 result.py 文件,列印修改後的全局變數。
import name
import change
print(change.a)
print(change.b)
print(change.msg)
輸出:
15
26
Welcome to JavaTpoint
嵌套函數中的全局
我們可以在嵌套函數中使用全局關鍵字。我們必須在嵌套函數中使用全局關鍵字聲明變數。讓我們理解下面的例子。
示例-
# The example of global in nested function
def add():
a = 15
def modify():
global a
a = 20
print("Before modifying : ", a)
print("Making change")
modify()
print("After modifying: ", a)
add()
print("value of x: ", a)
輸出:
Before modifying : 15
Making change
After modifying: 15
value of x 20
說明:
在上面的代碼中,add()內部的值取局部變數 x = 15 的值。在 modify()函數中,我們已經使用 global 關鍵字分配了 x = 20。這種變化反映在 add()函數變數中。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/253285.html