2017-04-01 11 views
-1

作成した文字列オブジェクトの/ nと/ tを確認するために返されるPythonオブジェクトを取得するにはどうすればよいですか? nと tなしでPythonオブジェクトが返される

printを使用することはできません。関数に返された文字列オブジェクトを割り当てて出力する必要があります。出力を入力すると、出力されます。

現在、私の出力はこれです:

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

しかし、私はそれがこのようにしたい:あなたの出力の両方が同じオブジェクトであるという事実にもかかわらず

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

しかし、なぜあなたは 'print()'を使用できませんか? –

+0

それは私が示した方法に従う必要があるため、コマンドラインで印刷(出力)できません。返されたオブジェクトは、必要なものを印刷することができる必要がありますが、返されるオブジェクトは文字列です。 – iteong

+0

そのまま文字列を使用して、出力メソッド(印刷またはファイル出力)あなたが出力を表示したいとき。 –

答えて

2

、唯一の違いはということですprint(output)は、__str__メソッドoutputを印刷します。通常は、これはユーザーにとって使いやすいものです。 outputと入力するとメソッドがoutputと表示されます。これは「生の」出力とも呼ばれます。

しかし、仕事はこのように、カスタムオブジェクト、strのサブクラスを作成することにより、これに周りがあります:

>>> 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 

このオブジェクトはデフォルト__repr__をオーバーライドし、それが代わりに__str__のリターンします。

+0

これは私が欲しかったものです。ありがとう! – iteong

関連する問題