Python逻辑辅助从主算法分支
我对一些Python代码有一些问题,这取决于我的逻辑。我有一个主函数,它是通过在UI中单击按钮来调用的,在这个函数中,取决于按钮单击的结果,将执行几个语句,我遇到的问题是分支到函数,然后返回到此点执行下一个函数调用。这是我的密码: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
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
,那么您只需要重构两个函数,而不必担心如何在另一个函数之后调用它们。可以,人为错误是我在重新调度子函数中的第一个函数时遇到的问题,谢谢。