Python 中的 Globals() 函式


在 Python 中,每個程式都有一個符號表,其中包含程式中定義的名稱(變數、函式和類)的資訊。globals() 函式允許我們訪問和操作全域性符號表,提供有關程式中當前全域性變數的有價值資訊。在本文中,我們將瞭解這些 globals() 函式是如何工作的以及我們可以在 Python 中使用此函式做什麼。

globals() 函式概述

在 Python 中,每個程式都有一個符號表,其中包含程式中定義的名稱(變數、函式、類等)的資訊。符號表由字典表示,其中名稱是鍵,關聯的值表示其當前值或引用。

globals() 函式返回一個字典,表示當前的全域性符號表。它提供了對當前作用域中所有全域性變數及其對應值的訪問許可權。透過檢查此字典,我們可以以程式設計方式檢索、修改或刪除全域性變數。

語法

globals()

在這裡,globals() 函式不接受任何引數,它只是返回表示全域性符號表的字典。

檢索全域性變數

可以使用 globals() 函式在 Python 中檢索全域性變數,該函式返回一個表示當前全域性符號表的字典。透過訪問此字典並遍歷其項,您可以檢索當前作用域中所有全域性變數的名稱和值。

示例

在下面的示例中,我們定義了三個全域性變數:x、y 和 z。我們還定義了一個函式 print_globals(),該函式呼叫 globals() 函式來檢索全域性符號表。透過遍歷結果字典的項,我們列印所有全域性變數的名稱和值。此外,我們可以看到函式 print_globals() 本身也存在於全域性符號表中。

x = 10
y = 5
z = "Hello, World!"

def print_globals():
    global_vars = globals()
    for name, value in global_vars.items():
        print(f"{name}: {value}")

print_globals()

輸出

__name__: __main__
__doc__: None
__package__: None
__loader__: <_frozen_importlib_external.SourceFileLoader object at 0x7f9b30a74a30>
__spec__: None
__annotations__: {}
__builtins__: <module 'builtins' (built-in)>
__file__: /home/cg/root/22219/main.py
__cached__: None
x: 10
y: 5
z: Hello, World!
print_globals: <function print_globals at 0x7f9b30c13d90>

修改全域性變數

globals() 函式不僅允許我們檢索全域性變數,還允許我們修改其值。

示例

在下面的示例中,我們定義了一個全域性變數 x,其初始值為 10。modify_global() 函式使用 globals() 檢索全域性符號表,並透過直接更新字典條目將 x 的值修改為 20。當我們在呼叫 modify_global() 函式之前和之後列印 x 的值時,我們可以看到修改生效了。

x = 10

def modify_global():
    global_vars = globals()
    global_vars['x'] = 20

print("Before modification:", x)
modify_global()
print("After modification:", x)

輸出

Before modification: 10
After modification: 20

新增新的全域性變數

我們還可以使用 globals() 函式動態新增新的全域性變數。讓我們看一個演示相同的示例。

示例

在下面的示例中,我們定義了一個函式 add_global(),該函式使用 globals() 將一個名為 new_var 的新全域性變數新增到全域性符號表中。呼叫該函式後,我們列印 new_var 的值,這確認該變數已成功新增並且可以在全域性範圍內訪問。

def add_global():
    global_vars = globals()
    global_vars['new_var'] = "I'm a new global variable!"

add_global()
print(new_var)

輸出

I'm a new global variable!

結論

在本文中,我們討論了什麼是 globals() 函式以及為什麼使用它。globals() 函式用於訪問和操作程式中的全域性變數。透過使用此函式,我們可以動態檢索、修改或新增全域性變數。透過使用 globals() 函式的功能,您可以更好地控制程式的全域性變數,從而提高您的 Python 程式設計技能。

更新於:2023年7月17日

178 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.