2017-04-01 2 views
-1

Wie bekomme ich ein Python-Objekt, das zurückgegeben wird, um zu bestätigen/n und/t in einem String-Objekt, das ich erstellt habe?Python-Objekt zurückgegeben ohne n und t

Ich kann nicht drucken und muss meine Funktion ein zurückgegebenes String-Objekt zuweisen, und wenn ich die Ausgabe eingeben, wird es ausgedruckt, wie ich es möchte.

Zur Zeit meiner Ausgabe ist dies:

>>> output = function(input_data) 
>>> output 
'1\t2\t100\nALL\t100\n2\t1\t20\nALL\t20\nALL\t1\t20\n2\t100\nALL\t120\n' 

Aber ich will es, dies sein:

>>> output = function(input_data) 
>>> output 
1 2 100 
ALL 100 
2 1 20 
ALL 20 
ALL 1 20 
2 100 
ALL 120 
+3

Aber warum können Sie 'print()' nicht verwenden? –

+0

Da muss es dem Weg folgen, den ich gezeigt habe .... also kann ich in der Befehlszeile nicht drucken (ausgeben). Das zurückgegebene Objekt muss in der Lage sein, das auszudrucken, was ich brauche, aber das zurückgegebene Objekt ist ein String .... – iteong

+0

Sie können den String, den Sie erwähnt haben, an einer beliebigen Stelle verwenden und nur eine Ausgabemethode verwenden (Druck oder Dateiausgabe) wenn Sie die Ausgabe anzeigen möchten. –

Antwort

2

Trotz der Tatsache, dass beide Ihre Ausgaben das gleiche Objekt sind, ist der einzige Unterschied ist, dass print(output) druckt die __str__ Methode output, die normalerweise benutzerfreundlicher ist. Und tippen Sie einfach output druckt die __repr__ Methode von output, die manchmal als die "rohe" Ausgabe bezeichnet.

Allerdings gibt es eine Arbeit um mit diesem durch ein benutzerdefiniertes Objekt erstellen, Unterklasse von str, wie folgt aus:

>>> class cusstr(str): 
    def __repr__(self): 
     return self.__str__() 
>>> output = function(input_data) # your function... 
>>> output = cusstr(output) 
>>> output 
1 2 100 
ALL 100 
2 1 20 
ALL 20 
ALL 1 20 
2 100 
ALL 120 

Diese Aufgabe überschreibt die Standard __repr__ und machen es __str__ anstatt es zurück.

+0

Das ist, was ich wollte. Vielen Dank! – iteong

Verwandte Themen