如何让多个Python脚本相互交互

时间:2018-06-16 18:03:11

标签: python pygame

所以,我已经用Python编程了一段时间,但我并不熟练。我也一直在玩pygame,虽然这样做,我遇到了一个问题,我可以通过其他方法解决(请参阅下面的更多内容),但我想知道是否有办法让多个python脚本运行在同一时间和相互作用。这就是我的意思。

之前我已经使用Arduino板编程,在编程时,您可以定义多个任务,类似于函数。在主要任务中,您可以启动在后台运行的单独任务。例如,这是一些伪代码。

 Define task Emergency_Stop:
      If the emergency button is pressed, then stop all motors.
      Set x = False
 start main task:
      while(x==True):
           start_task(Emergency_Stop)
           Turn on all motors

此代码将启动具有主要任务的所有电机,但是如果在任何时候按下紧急按钮,它将停止所有电机,因为该单独的任务在后台运行。所以我想知道的是,是否有办法与python做类似的事情,允许我同时运行我的主脚本,运行一个单独的脚本,与主脚本中的变量交互,如果我例如,在单独的脚本中运行time.sleep(3000),它不会暂停主脚本。

以下是我想要做的一个例子,以及一种绕过它的方法。

 import pygame, time
 #I'm not entirely sure how to make a timer yet, but let's say t equals a timer of sorts
 t=Timer
 def mouse_click():
 #If the mouse has been clicked and the timer is greater than 5 seconds          
 if pygame.mouse.get_pressed[0] and t > 5: 
           #Set the timer back to 0 and print "Your mouse has been clicked"
           t = 0
           print "Your mouse has been clicked"
 def main():
      while(True):
           mouse_click()
 main()

如果我的主循环中有更多要运行的话,这将允许我运行我的所有主循环而不被中断。但是我想要做的不是有一个计时器,我会让mouse_click()函数在按下鼠标后等待5秒钟。我不能这样做,不会导致我的整个程序暂停五秒钟。在进行一些研究之后,我认为我需要使用线程,但我没有使用线程的经验,而且我还没有发现任何有关如何使用它们的信息。如果有人能指导我到一个好学习的地方,那就太好了。谢谢!

0 个答案:

没有答案