Python globals() 函数返回表示当前全局符号表的字典。它提供对当前范围内所有全局变量及其相应值的访问。借助此功能,我们可以检索、修改或删除全局变量。
在 Python 中,每个程序都有一个符号表,其中包含有关程序中定义的名称(变量、函数、类等)的信息。symbol 表由字典表示,其中名称是键,关联的值表示其当前值或引用。
globals() 是内置函数之一,不需要任何模块。
语法
Python globals() 函数的语法如下所示 -
globals()
参数
Python globals() 函数不接受任何参数。
返回值
Python globals() 函数返回表示全局符号表的字典。
globals() 函数示例
练习以下示例来理解 Python 中 globals() 函数的用法:
示例:使用 globals() 访问全局变量
以下是 Python globals() 函数的示例。在此,我们创建了一个调用 globals() 函数来检索全局品种表的方法。通过迭代其 items,我们可以访问全局变量。
nums = 22
def accessMethod():
globalVar = globals()["nums"]
print(f"Accessing global number: {globalVar}")
accessMethod()
在执行上述程序时,将生成以下输出 -
Accessing global number: 22
示例:使用 globals() 修改全局变量
globals() 函数不仅允许我们检索全局变量,还允许我们修改它们的值。在此示例中,“modifyMethod()”函数使用 globals() 检索全局符号表,并通过直接更新字典条目来修改“nums”的值。
nums = 22
def modifyMethod():
globalVar = globals()["nums"] = 121
print(f"Modifying global number: {globalVar}")
modifyMethod()
以下是执行上述程序得到的输出 -
Modifying global number: 121
示例:访问所有默认全局变量
在下面的示例中,我们使用 globals() 检查所有默认的全局变量,然后在用户定义的函数的帮助下显示它们。
def pritnGlobals():
for globalVars in globals().keys():
print(globalVars)
pritnGlobals()
通过执行上述程序获得以下输出 -
__name__
__doc__
__package__
__loader__
__spec__
__annotations__
__builtins__
__file__
__cached__
pritnGlobals
__doc__
__package__
__loader__
__spec__
__annotations__
__builtins__
__file__
__cached__
pritnGlobals
示例:使用 globals() 删除全局属性
在 globals() 方法的帮助下,我们还可以删除特定的 global 属性,如下例所示。
numOne = 52
numTwo = 121
def delGlobal():
del globals()["numTwo"]
print(f"Is numTwo exist after deletion: {'numTwo' in globals()}")
delGlobal()
上述程序在执行时显示以下输出 -
Is numTwo exist after deletion: False