在Python中使用全局变量的注意点和推荐实践
Python支持在py文件中定义全局变量,但是在不同文件中对全局变量的修改只会在本文件中生效。例如:
在GlobalVarSource.py中定义:
arrGlobalArray = [] def UpdateGlobalArray() : arrGlobalArray = [2,4,5] print(f"In GlobalVarSource, arrGlobalArray={arrGlobalArray}") #End Sub
在GlobalVarUser.py中定义:
from GlobalVarSource import * # Main entry point if __name__ == "__main__" : UpdateGlobalArray() print(f"In GlobalVarUser, arrGlobalArray={arrGlobalArray}") #End Sub
运行GlobalVarUser.py,得到输出:
In GlobalVarSource, arrGlobalArray=[2, 4, 5]
In GlobalVarUser, arrGlobalArray=[]
为了在多个文件之间同步对全局变量的更改,可以将全局变量封装到对象实例中。例如:
在GlobalVarSource.py中定义:
class GlobalVarContainer : arrGlobalArray = [] #End Class objGlobalVarContainer = GlobalVarContainer() def UpdateGlobalArray() : objGlobalVarContainer.arrGlobalArray = [2,4,5] print(f"In GlobalVarSource, arrGlobalArray={objGlobalVarContainer.arrGlobalArray}") #End Sub
在GlobalVarUser.py中定义:
from GlobalVarSource import * # Main entry point if __name__ == "__main__" : UpdateGlobalArray() print(f"In GlobalVarUser, arrGlobalArray={objGlobalVarContainer.arrGlobalArray}") #End Sub
运行GlobalVarUser.py,得到输出:
In GlobalVarSource, arrGlobalArray=[2, 4, 5]
In GlobalVarUser, arrGlobalArray=[2, 4, 5]
参考资料:
https://geek-docs.com/python/python-ask-answer/197_python_using_global_variables_between_files.html
页面版本: 1, 最后编辑于: 07 Apr 2025 09:26