我已经编写了Python函数来自动执行软件程序。工作流程如下所示:
def main():
while True:
do A
if A is not done correctly for more than 100 times:
reboot()
while True:
do B
if B is not done correctly for more than 100 times:
reboot()
while True:
do C
if C is not done correctly for more than 100 times:
reboot()
def reboot():
restart the software program
我目前遇到的问题是如果B操作不正确,将触发重新启动。重新启动执行后,它将带我回到执行B的while循环。
我真正需要的是脚本始终在重新启动后从A开始。
我已经进行了研究,并且知道Python中没有GoTo,人们建议对这种类型的应用程序使用while循环,但是我不知该如何在我的情况下工作。任何建议将不胜感激,谢谢!
答案 0 :(得分:0)
Goto是邪恶的,很容易造成一些重大的执行缺陷,这就是为什么在大多数专业环境中不再使用它。
让我们假设您的A,B或C是某种条件,在这种情况下,您可以创建一个评估该条件的函数,尽管它很大程度上取决于条件是什么。
为什么不仅仅根据您拥有的任何业务逻辑以适当的条件调用函数。这就是我的建议:
def do_the_work(...condition params):
while True:
# do the actual work and evaluate the conditions
# if the conditions don't pass for X times
# then just break this loop and return
while True:
# main business logic here
# will decide how to call the
# do_the_work function
# meaning, deciding what params to send to it
解释是,在脚本末尾定义的main while循环将是您的“ main”,每次“ do_the_work”结束while循环并返回时,它将重做工作。