2017-07-06 40 views
0

私は、GUIを介してユーザー入力を受け取り、基本的にテキストファイルを読み取って、ユーザーが要求したものがそこにあるかどうかをチェックする関数に渡すPythonスクリプトを作成しています。この関数は、チェックごとにTrueまたはFalseの配列を返します。GUI入力(python)が必要な関数から結果を渡すには?

私はこの配列を別の関数(def markup())で使いたいですが、関数にユーザの入力を与えずに呼び出すと、エラーが発生します。

この関数の結果を保存し、毎回ユーザーの入力を必要とせずに渡す方法はありますか?

擬似コード:

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()でそれを使用しました。問題は、第3の関数でtextCheck()の戻り値を使用しようとしています。私は再びすべてのユーザー入力を再送信することなくそれを使用したいと思います。他の関数からアクセスできるように 'allResults'を保存できますか? – JeffLearnsPython

答えて

0

あなたが永続オブジェクトとしてallResultsを管理する必要があります。 1つの方法は、実行中のスレッドが常にリストのハンドルを持つように、どこでも結果をパラメータとして渡すことです。もう1つの方法は、(shudder)グローバル変数にすることです。これは習慣としてやや危険ですが、実装して維持するのが最も簡単な方法です。また、Resultsクラスを作成し、必要なだけ持続するオブジェクトをインスタンス化することもできます。

メインプログラムの流れがなくても、お互いに推薦することはできません。

0

textChecker()の最後にマークアップ(allResults)が呼び出されました。出来た。

関連する問題