将变量从一个 Python 传递到另一个 Python



im 在 Python 中是新的,我想在 Python 中运行两个 simultaneos 程序,一个将始终更改 X 的值,另一个必须读取此变量,如果 X 更改做某事,我尝试这样做:

第一个程序:

first.py

import time
rocket =0
while rocket<10:
time.sleep(1)
rocket+=1

second.py

import first 
while (first.rocket<10):
print 'rocket less than 10'
print 'done'

但我的结果不是我想要的,因为首先导入行后火箭的值是 allways 10,所以我 second.py 从不打印"火箭小于 10"只打印"完成",我如何解决这个问题。 这些必须是同时运行的程序。

简而言之:这是不可能的。

长:这可以通过使用以下线程中所述的另一种技术来实现:

如何在 Python 中跨脚本共享变量

导入文件时,其中的所有内容都将在继续之前运行。所以你现在做的实际上并不是并行运行两个程序,你的import语句在second.py指示运行first.py,然后继续执行指令的其余部分。

pythonic 的方法只是通过import语句传递一个对象。我们可以定义一个具有charge属性的rocket类,第二个程序检查此属性,然后通过方法添加到它。它看起来像这样。

first.py

import time
class Rocket: # class object usually start with a capital letter.
def __init__(self): # Method used to initialize an instance of the class
self.charge = 0
def add_charge(self):
self.charge += 1

second.py

import first
rocket = first.Rocket() # We actually create a new object here
while rocket.charge < 10:
rocket.add_charge()
print('rocket less than 10')
print 'done'

请注意,仍然没有两个程序同时运行。第一个文件定义一个对象,然后在第二个文件中使用该对象。简而言之,第一个文件绘制我们将要使用的对象的计划,第二个文件构建它。

如果你想让两个python脚本并行运行,它们每个都会被封装在自己的虚拟机中,你必须求助于用first.py写入文件并使用second.py从中读取,但我真的看不出分别运行两个文件的意义。

写完这篇文章,以及你的问题,似乎我可能假设你已经知道类之类的,但事实可能并非如此......所以请随时询问!

抱歉,python 不是这样工作的。因为每当你打电话给 first.py 时,second.py 都会等待 first.py 完成。

对于此类情况,您将需要构建 API。好消息是,你可以用python做到这一点。请谷歌一下或查看YouTube视频。你可以用python做很多事情。

最新更新