【发布时间】:2018-01-29 21:43:19
【问题描述】:
是否可以使用独立的执行脚本 b.py 从脚本 a.py 中读取变量
示例: 一个.py
#!/usr/bin/env python3
import time
i = 0
def run():
global i
print(i)
i = i+1
def get_i():
return i
def main():
pass
if __name__ == "__main__":
while True:
run()
time.sleep(5)
print("Stopped")
b.py
#!/usr/bin/env python3
import a
print(a.get_i())
如果执行 b.py,它将打印 0,但 i 希望它打印在 a.py 中设置的 i 的当前状态,所以 i 必须大于 0。
我已经尝试了一个额外的 c.py,其中 i 被保存为全局变量,然后 c.py 被导入到 a.py 和 b.py 但它是相同的行为:b。 py 打印 i 的初始值,而不是在 a.py 中设置的值
注意:a.py 在 b.py 之前启动,并且由于 while 循环而仍在运行,然后 b.py 被执行。
【问题讨论】:
-
据我了解,您正在从 a.py 打印 i。你没有做的是在 a.py 中设置它的值。由于您将 a.py 作为导入调用,因此您的 if 永远不会运行
-
好吧,也许我错过了一点。 a.py 在 b.py 之前启动,并且由于 while 循环而仍在运行,然后执行 b.py。
-
@HansDampf 那么,您正在同时运行两个不同的进程并希望在它们之间共享数据?
-
我有一个一直在设置变量的.py。然后我有 b.py,它在 a.py 开始后的随机时间执行,并且 b.py 应该得到在 a.py 中设置的变量
标签: python python-3.x global-variables