我有两个文件,一个用于执行自动测试,另一个用于存储测试结果并通过电子邮件发送测试结果。两个文件都是使用Hudson服务器启动的,我需要第一个模块与第二个模块共享信息,但是当我访问Reporter模块中的静态变量时,它们的初始值为“None”。我已将文件减少到最低限度,以便专注于使数据共享工作。文件一是:
#!/usr/bin/python
from reports import Reporter
import time
class Flash_Device():
def Begin_Flashing( self ):
Reporter.flash_start_time = time.time()
if ( __name__ == "__main__" ):
flasher = Flash_Device()
flasher.Begin_Flashing()
第二个文件是定义的报告文件,如下面的代码:
#!/usr/bin/python
class Reporter():
flash_start_time = None
def Report_Results( self ):
print "Flash start time:", Reporter.flash_start_time
if ( __name__ == "__main__" ):
reporter = Reporter()
reporter.Report_Results()
我所希望的是我执行的flashher.py更新静态变量flash_start_time,然后在执行reporter.py时可以访问更新的值。 如果我将方法Begin_Flashing()设为静态,那会有用吗?
答案 0 :(得分:2)
没有。问题是只有一个模块可以"__main__"
,因此只会运行一个主要节。
您的代码没有任何问题,除非您在导入Monkey_Reporter
时导入Reporter
。不,通过reports
访问它不会改变任何东西;他们仍然是同一个班级。