在Python中,每个程序都有一个符号表,其中包含有关程序中定义的名称(变量、函数和类)的信息。 global() 函数允许我们访问和操作全局符号表,提供有关程序中当前全局变量的有价值的信息。在本文中,我们将了解这些 globals() 函数的工作原理以及我们可以在 Python 中使用该函数做什么。
globals()函数概述
在Python中,每个程序都有一个符号表,其中包含程序中定义的名称(变量、函数、类等)的信息。符号表由字典表示,其中名称是键,关联值表示它们的当前值或引用。
globals() 函数返回一个表示当前全局符号表的字典。它提供对当前范围内所有全局变量及其相应值的访问。通过检查这个字典,我们可以以编程方式检索、修改或删除全局变量。
语法
globals()
登录后复制
这里,globals()函数不接受任何参数,它只是返回表示全局符号表的字典。
检索全局变量
在Python中检索全局变量可以使用globals()函数来完成,该函数返回表示当前全局符号表的字典。通过访问此字典并迭代其项目,您可以检索当前范围内所有全局变量的名称和值。
示例
在下面的示例中,我们定义了三个全局变量: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__:
__spec__: None
__annotations__: {}
__builtins__:
__file__: /home/cg/root/22219/main.py
__cached__: None
x: 10
y: 5
z: Hello, World!
print_globals:
登录后复制
修改全局变量
globals() 函数不仅允许我们检索全局变量,还允许我们修改它们的值。
示例
在下面的示例中,我们定义了一个初始值为10的全局变量x。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 编程技能。
以上就是在Python中,globals()函数的作用是返回当前全局作用域中定义的所有变量和函数的字典的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!