调用另一个函数后重新启动一个函数

时间:2018-12-16 11:02:30

标签: python python-3.x

我已经编写了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循环,但是我不知该如何在我的情况下工作。任何建议将不胜感激,谢谢!

1 个答案:

答案 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循环并返回时,它将重做工作。