Python逻辑辅助从主算法分支

Python逻辑辅助从主算法分支,python,algorithm,python-3.x,tkinter,logic,Python,Algorithm,Python 3.x,Tkinter,Logic,我对一些Python代码有一些问题,这取决于我的逻辑。我有一个主函数,它是通过在UI中单击按钮来调用的,在这个函数中,取决于按钮单击的结果,将执行几个语句,我遇到的问题是分支到函数,然后返回到此点执行下一个函数调用。这是我的密码: return #This is where I want this function to terminate and then return to the function above to execute the nextFunct

我对一些Python代码有一些问题,这取决于我的逻辑。我有一个主函数,它是通过在UI中单击按钮来调用的,在这个函数中,取决于按钮单击的结果,将执行几个语句,我遇到的问题是分支到函数,然后返回到此点执行下一个函数调用。这是我的密码:

                return #This is where I want this function to terminate and then return to the function above to execute the nextFunctionCall() function.

非常感谢您的帮助,谢谢。我在这里遇到的问题是,每个函数运行一次,第一个函数应该执行30次,然后执行else子句,前提是没有发生elif语句中的状态更改。

如果要在调用
alarmActive
30次后执行
nextFunctionCall(root)
,你不需要把自己复杂化。只需从
enableCode
中删除它,并在
else
块中调用它:

def alarmActive(root, period=0):
    # ...
    else:
        nextFunctionCall(root)
但是,您可以减少大量冗余代码。例如,如果您只想将
闪烁设置为True或False,反之亦然,并根据值打印
“开”
“关”
,则这会更短更直接:

def alarmActive(root, period=0):
    global Flash
    if period <30 and AlarmStatus == "On":
        Flash = not Flash
        print("On" if Flash else "Off")
        period += 1
        print(period)
        root.after(500, lambda: alarmActive(root, period))
    else:
        if (AlarmStatus == "Off"):
            print("Alarm has been disabled before activation")
        nextFunctionCall(root)
def alarmActive(根,周期=0):
全球闪光

如果period,则每次运行函数时period的值都相同。“period+=1:语句无效。lambda调用调用调用通过新值的函数,在这种情况下,period+=1不起作用。
global
…一开始就坏了:-(root是什么类型的对象?是否确实需要提供睡眠回调?是的,否则GUI将在指定的时间进入睡眠状态,root将在GUI内安排任务。是的,这就是我正在做的,但nextFunctionCall类似于上面的alarmActive函数,有很多执行路径,最后返回到o以前的函数ETC您也可以发布
nextFunctionCall
函数吗?如果它类似于
alarmActive
,那么您只需要重构两个函数,而不必担心如何在另一个函数之后调用它们。可以,人为错误是我在重新调度子函数中的第一个函数时遇到的问题,谢谢。