2017-07-06 171 views
0

我正在寫一個python腳本,通過GUI接受用戶輸入,然後將其傳遞給基本讀取文本文件的函數,並檢查用戶請求的內容。該函數爲每個檢查返回一個True或False的數組。我想在不同的函數(def標記())中使用此數組,但如果我沒有給用戶輸入函數調用它,我得到一個錯誤。如何從需要GUI輸入(python)的函數傳遞結果?

有沒有辦法讓我存儲這個函數的結果並且每次都不需要用戶輸入就可以傳遞它的結果呢?

僞代碼:

def clickButton(): 

    userInput = [A,B,C,D,E] 
    textCheck(userInput) 

def textCheck(userInput): 

    *code for checking text creates an array named allResults* 
    return allResults 

def markup(): 

    results = textCheck() 
    print(results) 
+0

我不完全確定你的意思? GUI的功能不依賴用戶輸入嗎?也許你想''clickButton()'中的默認參數值? –

+0

我想你所問的是,如果有方法可以引用上次使用該程序時使用的內容。爲此,我建議將值寫入文件,並檢查該文件中的值。這些可以由用戶輸入覆蓋,並在他們單擊按鈕接受值時確定。 – mauve

+0

它確實依賴於用戶輸入。但是我已經通過clickButton()獲取了用戶輸入,並在textCheck()中使用了它。問題是試圖在第三個函數中使用textCheck()的返回值;我想使用它,而不用重新發送所有的用戶輸入。我可以保存'allResults'以便其他功能可以訪問嗎? – JeffLearnsPython

回答

0

你需要管理allResults作爲一個持久化對象。一種方法是將結果無處不在地作爲參數傳遞,無論執行哪個線程總是擁有列表的句柄。另一種方法是(不寒而慄)使其成爲一個全局變量 - 作爲一種習慣,這有點危險,但可能是最容易實現和維護的。你也可以創建一個Results類並實例化一個對象,只要你需要它就一直存在。

如果沒有主程序的流程,我不能推薦一個。

0

我最後在textChecker()的末尾調用了標記(allResults)。有效。

相關問題