オブジェクトのリストがあります。最近のバージョンの Python に組み込まれている文字列フォーマット機能を使用して、いくつかのインスタンス変数を明らかにする、リスト内のオブジェクトの意味のある表現を出力しようとしています。Python 3.3.0 を使用しています。
__str__
リスト内のオブジェクトのクラスにメソッドを定義しました。個々のオブジェクトを印刷しようとすると、__str__
メソッドによって返された表現が得られます。__str__
しかし、リスト全体を印刷しようとすると、メソッドを定義していないかのように、一般的な表現が得られます。次に例を示します。
class CustomClass:
def __init__(self):
self.instanceVar = 42
def __str__(self):
return "{} (instanceVar = {})".format(self.__class__.__name__, self.instanceVar)
testObject = CustomClass()
print("{}".format(testObject))
# CustomClass (instanceVar = 42)
print("{}".format([testObject]))
# [<__main__.CustomClass object at 0x1006cbed0>]
2番目のprintステートメントで次のようなものを印刷するにはどうすればよい[CustomClass (instanceVar = 42)]
ですか? 正しいフォーマット文字列をprint
関数に渡すだけでこれを行うことは可能ですか、それともそれよりも複雑ですか?