import time
import threading as thr
class Tester():
def __init__(self):
self.toDo = [lambda: self.display_with_lag("a"),
lambda: self.display_with_lag("b"),
lambda: self.display_with_lag("c")]
def display_with_lag(self, arg):
print("wait...")
time.sleep(2)
print("the value is %s" % arg)
def step(self):
while True:
try:
print("You're performing a step")
self.toDo[0]()
del self.toDo[0]
yield self.toDo[0]
except Exception:
print("Either there was an error or it's over, doesn't matter as of now")
break
def execute(self):
orders = self.step()
while True:
try:
next(orders)
except StopIteration:
break
if __name__ == "__main__":
test = Tester()
executer = thr.Thread(target=test.execute)
executer.start()
display_with_lag()
将成为我的机器人动作,并且会根据您的期望与toDo
分开添加到__init__()
。
我知道线程现在是不必要的,但现在我想添加一个类型的事件监听器,如果我在任何时候按下某个键击它将停止它正在做的任何事情,擦除test.toDo
,追加新的函数,并返回运行test.execute()
并对test.toDo
进行更改。这将模拟我的接近传感器。我打算使用RPi并将传感器连接到一个引脚,从我读过的内容来看,GPIO包含了我想要的功能,但我不知道如何使用它,如果有可能,我会喜欢也知道一般,python的方式。提前谢谢。