2016-12-21 43 views
-1

簡單的例子:Python:有沒有一種快速的方法來打破所有功能?返回主循環?

def func_1(): 
    func_2() 

def func_2(): 
    func_3() 

def func_3(): 
    #Finds condition to end all calculations and break of out all functions 

func_1() 

我有一些代碼與運行運行的其他功能一起做了很多耗時音頻運算等功能功能。我有我想要停止與所有測試「停止測試」按鈕Tkinter的,但要做到這一點,所有的功能已經被打破了的。有沒有快速的方法來做到這一點?要檢查停止條件將需要if語句的butloads作爲停止conditon可以在計算過程中的任何時間進行設置。

回答

0

您可以使用異常

def func_1(): 
    func_2() 

def func_2(): 
    func_3() 

def func_3(): 
    if condition: 
     raise Exception('something happened') 

try: 
    func_1() 
except Exception: 
    pass 
1

您可以使用Python的內置異常機制來做到這一點。如果你打算走這條路線,我推薦一個自定義的,有名的例外。

class JumpToMainLoop(Exception): 
    pass 

def func_1(): 
    func_2() 

def func_2(): 
    func_3() 

def func_3(): 
    raise JumpToMainLoop 

try: 
    func_1() 
except JumpToMainLoop: 
    pass 

使用內置的異常(如ValueError)還是差了通用的異常(如Exception)是不可取的,因爲這可能會出錯其他的東西會被捕捉,並通過您的try: except:錯過。

+0

美麗,謝謝:) – Plecto

+0

請看看下面的鏈接,如果這有助於你:http://stackoverflow.com/help/someone-answers – SethMMorton

相關問題