[英]Global variable declaration in python 3
我試圖了解全局變量如何影響。 以下面的代碼為例
person = "Dave"
def display(person):
global i
i = "Jack"
print("here is ",person)
display(person)
display(i)
結果是:
這是戴夫
這是傑克
我需要了解如何打印“傑克在這里”
以下代碼導致未定義i的錯誤。
person = "Dave"
def display(person):
global i
i = "Jack"
print("here is ",person)
display(i)
我也不太明白。
請幫忙。
在第二個示例中,當您調用display時,尚未定義i
,但是在第一個示例中,如您之前調用display一樣, i
被定義並具有一個值。 如果您在第一個示例中更改了訂單,則該訂單也將無法使用。
僅在調用顯示后才定義i
。
@Gayathri ,第一件事是使用global關鍵字來引用程序中聲明的全局變量,或將將出現在功能塊內部的任何變量聲明為global(如您的情況)。
讓您請理解以下兩個代碼示例之間的區別。
»使用全局關鍵字:
i = 10;
def func():
global i;
i = 20; # Modifying global i
print(i); # 20
print(i); # 10
func();
print(i); # 20
»不使用全局關鍵字:
i = 10;
def func():
i = 20; # It won't modify global i, here i is local to func()
print(i); # 20
print(i); # 10
func();
print(i); # 10
現在,讓我們集中討論主要問題。
✓在第一種情況下, def display(person):
的本地人員的值是“ Dave”, here is Dave
打印的here is Dave
&,然后創建全局i並將其值設置為“ Jack”。 在第二呼叫,即display(i)
經過所述設定值Jack
被分配給在可用的本地人變量i的def display(person):
因此它是印刷here is Jack
和沒有錯誤。
✓在第二種情況下,在函數調用display(i)
之前沒有顯式分配或函數調用來設置i的值,因此會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.