说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在Python中,__globals__
是一个特殊的属性,它是指向包含当前模块或函数的全局变量字典的引用。它允许你访问和修改函数或模块的全局变量。对存放该函数中 全局变量 的 字典 的引用 —— 函数定义所在模块的全局命名空间。
关于 function.__globals__
,在模块中,__globals__
指向模块的全局命名空间字典,你可以使用它来读取或修改模块级别的全局变量。在函数中,__globals__
指向定义函数时的全局命名空间字典,允许你在函数中访问或修改全局变量。
这是一个简单的示例,说明如何使用__globals__
:
# 模块级别的例子
global_var = 10
def func():
print("Inside function:", func.__globals__["global_var"]) # 访问全局变量
func.__globals__["global_var"] = 20 # 修改全局变量
func()
print("Outside function:", global_var) # 打印修改后的全局变量
# Inside function: 10
# Outside function: 20
函数级别的例子:
global_var = 10
def modify_global_var(new_value):
# 在函数内部修改全局变量的值
global_var = new_value
print("Inside function - global_var:", global_var)
print("Inside function - __globals__['global_var']:", modify_global_var.__globals__["global_var"])
# 在调用函数前打印全局变量的值
print("Before function call - global_var:", global_var)
# 调用函数来修改全局变量
modify_global_var(20)
# 在调用函数后打印全局变量的值
print("After function call - global_var:", global_var)
'''
Before function call - global_var: 10
Inside function - global_var: 20
Inside function - __globals__['global_var']: 10
After function call - global_var: 10
'''
但是,__globals__
通常用于调试和特殊情况下,不建议在正常的代码中过多使用,因为它可能会导致代码难以理解和维护。
https://docs.python.org/zh-cn/3/reference/datamodel.html#function.__globals__
更新时间:2024-03-03 09:02:53 标签:python 特殊属性 全局变量