2017-07-06 169 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)。有效。

相关问题