有没有办法同时使用代码 运行(更具体地说是 PyAutoGui)?

Is there way to have code running concurrently (more specifically PyAutoGui)?

我有以下代码

def leftdoor():
    press('a')
    pyautogui.sleep(1)
    press('a')

def rightdoor():
    press('d')
    pyautogui.sleep(1)
    press('d')

leftdoor()
rightdoor()

当我 运行 时,代码发生的是字母 A 被按下,等待 1 秒,然后再次按下。然后 D 键也会发生同样的情况。但是,有没有一种方法可以让我同时按下它们并通过调用这两个函数在代码中表达出来,而不必等待前一个函数的 .sleep

有两种方法可以运行您的代码并发:

组合函数(对于大型函数可能不可行)

对于您的代码,它看起来像这样:

def door():
    press('a')
    press('d')
    sleep(1)
    press('a')
    press('d')

door()

如果这不是您想要的,请使用线程。

Theading

Here是模块教程的link,代码如下。

from threading import Thread     # Module import
rdt = Thread(target=rightdoor)   # Create two Thread objects
ldt = Thread(target=leftdoor)
rdt.start()                      # start and join the objects
ldt.start()
rdt.join()
ldt.join()
print("Finished execution")      # done!

请注意,使用它并不能绝对保证同时按下 a 和 d(我最大延迟大约 10 毫秒,这可能来自我用来计时的程序),但它应该适用于所有目的。