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

2024-10-01 22:36:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,我想用python运行两个simultaneos程序,一个总是改变X的值,另一个必须读取这个变量,如果X改变了,我试着这样做:

第一个程序:

你知道吗第一.py你知道吗

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

你知道吗第二.py你知道吗

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

但是我的结果不是我想要的,因为在第一行导入之后,rocket的值总是10,所以我的第二.py从不打印“火箭小于10”只打印“完成”,我怎么能解决这个问题。 这些必须是同时运行的程序。你知道吗


Tags: pyimport程序timesleepfirstlessprint
3条回答

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

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

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从中读取,但我并不认为单独运行两个文件有什么意义。你知道吗

写完这篇文章,再问一遍你的问题,我似乎以为你已经知道了类之类的东西,但事实可能不是这样。。。所以请随便问吧!你知道吗

简而言之:这是不可能的。你知道吗

Long:这可以通过使用本线程中描述的其他技术来实现:

how-to-share-variables-across-scripts-in-python

抱歉,python不是这样工作的。因为无论你什么时候打电话第一.py, 第二.py将等待第一.py结束。你知道吗

对于这种情况,您需要构建API。好消息是,您可以用python来实现这一点。请在谷歌上搜索或查看YouTube视频。使用python可以做很多事情。你知道吗

相关问题 更多 >

    热门问题