2017-08-10 5 views
0

私は2つのプログラムを持っています。最初のプログラムの中の関数は何らかのメッセージを返し、多くのものを含んでいます。printそこで、最初のプログラム関数を2番目のプログラムにインポートし、戻り値を使用します。しかし、最初のプログラムのprintも必要です。どうすれば入手できますか?返すことなくPythonハンドリングシステムの出力

FYI私はprintの値を返すことができません。プログラムで使用されているプリントを入手する方法はありますか?

例コード:

まずprogram1.py

class Test(): 
    def first(self,name): 
     print "first print" 
     print "second print" 
     print "third print" 
     #do some thing.. 
     return {"sucess":"end result"} 

セカンドprogram2.py

from firstprog import Test 
result = Test().first("testing") 
return result + "first program prins here" 
+0

簡単にお手伝いできるように、説明している例のコードを入力してください。完全なコードや実際のコードは必要ありませんが、現在実行中のものを例示するコードスニペットが必要です。 –

+0

最初のpythonファイルに 'print()'を含む関数を呼び出す必要があります。各ファイルに使用しているコードの例を投稿してください。 – mhawke

+0

私はあなたが私の答えであなたが他のpythonファイルから関数をインポートしていることを前提としていました。それは事実ですか? – FunkySayu

答えて

0

あなたはあなた自身のStringIOオブジェクト行うことでsys.stdoutにパッチを適用することができます。

import StringIO 
import sys 

def my_function(): 
    print("foo") 
    return 5 

stdout = sys.stdout 
sys.stdout = my_stdout = StringIO.StringIO() 

result = my_function() 

sys.stdout = stdout 
print(my_stdout.getvalue()) # prints foo 
print(result) # prints 5 
+0

ありがとうございます –

関連する問題