如何在 Python 中聲明全局變量

另一個塊可以訪問的變量稱為全局變量。它可以在塊外部定義。換句話說,全局變量是在函數外部定義的,我們可以在函數內部訪問它。

另一方面,在一個塊中定義並在該塊中可用的變量稱為局部變量。這樣的變量只能在定義的塊中訪問。

讓我們理解以下局部和全局變量的例子。

示例-局部變量


# 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-hant/n/253285.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:16
下一篇 2024-12-14 02:16

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29
  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29

發表回復

登錄後才能評論