2017-08-10 1 views
0

J'ai deux programmes. Les fonctions à l'intérieur du premier programme renvoient un message et contiennent beaucoup de print s. Donc, j'importe les premières fonctions du programme dans le second programme et j'utilise les valeurs de retour. Cependant, j'ai aussi besoin des print du premier programme. Comment puis-je les obtenir?Sortie du système de gestion Python sans retours

FYI Je ne peux pas ajouter les valeurs print dans la déclaration. Y at-il un moyen d'obtenir toutes les impressions utilisées par le programme?

code Exemple:

Première program1.py

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

Deuxième program2.py

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

Veuillez fournir un exemple de code de ce que vous expliquez afin que nous puissions facilement vous aider. Nous n'avons pas besoin du code complet ou du code réel mais d'un fragment de code qui illustre ce que vous exécutez actuellement. –

+0

Les appels aux fonctions contenant 'print()' dans le premier fichier python doivent être affichés. Publiez un exemple du code que vous utilisez pour chaque fichier. – mhawke

+0

J'ai réalisé que je supposais dans ma réponse que vous étiez en train d'importer la fonction de l'autre fichier python. Est-ce le cas? – FunkySayu

Répondre

0

Vous pouvez patcher le sys.stdout en faisant votre propre objet StringIO.

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

merci va vérifier et vous faire savoir –