У меня есть функция под названием Cycle()
, которая регулирует скорость вращения насоса в зависимости от температуры. Вот его представление:
def Cycle(self, arg1, arg2, arg3, arg4):
if arg1 < arg2:
self.pumpSpeed = 100
elif ....:
print("Successfully cooled down. Returning to normal")
elif ....:
self.pumpSpeed = 45
elif ....:
print("Solar circuit cooled down. Returning to normal")
elif ....:
self.pumpSpeed = 0
.
.
so on...
Вы можете видеть, что в некоторых условиях устанавливается PumpSpeed
, в то время как в других просто предоставляется оператор печати, и система должна ждать следующего цикла, чтобы решить, что PumpSpeed
должно быть.
Способ запуска следующий:
for i in range(0,10):
fetchNewArgs()
Obj.cycle(arg1, arg2, arg3, arg4)
sleep(5)
Проблема в системе приходится ждать еще 5 секунд, чтобы решить, что новая скорость насоса после охлаждения должна составлять .
Решение должно включать continue
в необходимых условиях, но проблема в том, что это не так oop, поэтому не может.
Есть ли способ запустить функцию Cycle()
сразу, только в определенных условиях, не дожидаясь еще 5 секунд?
На основании ответов @ Quamrana нужно немного ограничить область действия:
- Время ожидания является переменным и не всегда 5, поэтому часть времени возврата увеличивается сложность. Если бы это было не так, то определенно это сработало бы.
- Важная вещь, которая, очевидно, не была ясна в первом утверждении. Причина, по которой я использовал слово
Rerun
, заключается в том, что я хочу использовать цикл с теми же аргументами. В следующий раз аргументы могли измениться. Пересмотрели оригинальную функцию l oop, чтобы продемонстрировать это.