2013-10-03 38 views
0

所以我覺得我只是從根本上做錯了,但這裏是我在做什麼Python的 - 通過功能被扔在BG錯誤循環,直到最大遞歸深度超過

some variables here 
some code here to run once 

def runfirst(): 
    do some stuff 
    runsecond() 
def runsecond(): 
    do some different stuff 
    runthird(): 
def runthird(): 
    do some more stuff 
    runfirst(): 
runfirst() 

因此,一個基本的例子基本上拉開了我需要的一些信息,然後運行3個不同的變量。我正在做的是從數據庫中獲取信息,然後觀察數據庫中的一些數據,如果這些數據中的任何一個在一段時間內超過特定數量,它將發送電子郵件。這是爲了監視目的,我需要它隨時運行。我得到的問題是,它一直在運行,在後臺它拋出錯誤,如「文件」asdf.py「,線路等等,在第一次運行」

我認爲這是抱怨,因爲它認爲我是通過循環功能,但我需要這個做的,它完美的作品,除了錯誤,並最終殺死我的劇本由於最大遞歸深度超出。任何幫助?

回答

3

您在這裏有無限遞歸。因爲你從runthird調用runfirst,它一直會越陷越深,沒有的功能不會回來。您可能需要考慮將函數放在while True循環中,而不是相互調用它們。

def runfirst(): 
    do some stuff 
def runsecond(): 
    do some different stuff 
def runthird(): 
    do some more stuff 

while True: 
    runfirst() 
    runsecond() 
    runthird() 
+0

這正是我需要的。不知道最簡單(正確)的方法來遍歷它們。謝謝,工作完美。 – cashman04

1

你不循環。

你調用調用調用第三函數來調用它調用它調用第三函數再次調用第一功能的第二功能第一功能其他功能的功能...等,直到你的堆棧溢出。

相關問題