python的全局变量如何在模块之间共享?
一个简单的实验:
假设现在有两个模块,模块varmain.py负责声明并初始化全局变量,同时作为main的入口调用其他辅助模块完成程序功能;模块varprinter负责打印全局变量,你可以想像该模块是需要访问全局变量并使用它们完成某些具体的业务工作。
代码如下:
运行后的结果为:
即全局变量name并没有保持。
一些简单的修改如在varprinter.py中把import改成from import,在varmain.py中撤掉loadName()函数,而将name变量的修改直接放到if __name__ == '__main__':下等招数都试过了,效果一样。
各位请调试成功后回帖,另外也不要修改程序的整体结构,在前面已经说清楚了,varmain模块是负责管理全局变量的,可以想像是从数据库或者文件等持久层读入全局变量;varprinter是访问和使用全局变量来完成业务功能的。不知各位高手是否有可行性的建议?谢谢!
假设现在有两个模块,模块varmain.py负责声明并初始化全局变量,同时作为main的入口调用其他辅助模块完成程序功能;模块varprinter负责打印全局变量,你可以想像该模块是需要访问全局变量并使用它们完成某些具体的业务工作。
代码如下:
#!/usr/bin/env python
#module varmain.py
import varprinter
name = ''
def loadName():
global name
name = 'Hello!'
if __name__ == '__main__':
loadName()
print 'in main name = ', name
varprinter.printName()
#!/usr/bin/env python
#module varprinter.py
from varmain import name
def printName():
print 'in varprinter name = ', name
运行后的结果为:
in main name = Hello!
in varprinter name =
即全局变量name并没有保持。
一些简单的修改如在varprinter.py中把import改成from import,在varmain.py中撤掉loadName()函数,而将name变量的修改直接放到if __name__ == '__main__':下等招数都试过了,效果一样。
各位请调试成功后回帖,另外也不要修改程序的整体结构,在前面已经说清楚了,varmain模块是负责管理全局变量的,可以想像是从数据库或者文件等持久层读入全局变量;varprinter是访问和使用全局变量来完成业务功能的。不知各位高手是否有可行性的建议?谢谢!
...全文
相关推荐
总结Python基础面试题.docx
全局变量使用`global`关键字声明,全局变量在整个程序范围内都有效。在函数内部,同名局部变量会覆盖全局变量。17、如何跨模块共享全局变量?
python面试题
类变量和实例变量- **类变量**: 属于类本身的变量,在类的所有实例之间共享。通常用于存储所有实例都共同拥有的信息。- **实例变量**: 每个实例独有的变量,存储每个实例特有的信息。
Python 进程之间共享数据(全局变量)的方法
在Python编程中,多进程间的数据共享是一种常见的需求,特别是在并行处理和分布式计算的场景下。本篇文章将介绍如何在Python中实现进程之间的全局变量共享,包括数值型、数组型以及字典和列表类型的数据
python 多进程共享全局变量之Manager()详解
然而,在多进程环境下,进程之间的全局变量是无法共享的,因为每个进程都有自己独立的内存空间。
Python 3 实现定义跨模块的全局变量和使用教程
### Python 3 实现定义跨模块的全局变量和使用教程#### 一、全局变量的基本概念在Python中,全局变量是指在整个程序范围内都可访问的变量。它们可以在不同的函数或者模块之间共享数据。


