簡體   English   中英

Python 3中的全局變量聲明

[英]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被分配給在可用的本地變量idef display(person):因此它是印刷here is Jack和沒有錯誤。

在此處輸入圖片說明

✓在第二種情況下,在函數調用display(i)之前沒有顯式分配或函數調用來設置i的值,因此會出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM