私のオブジェクトの__str__()
メソッドを拡張したいと思います。 str(obj)
は現在、読み取ります置き換えるのではなく__str __()を拡張する
<mymodule.Test object at 0x2b1f5098f2d0>
私は一意の識別子としてアドレスを好むが、私はいくつかの属性を追加します。アドレス部分を維持しながらこれを拡張する最善の方法は何ですか?私はこのようなものを見たいと思います:
<mymodule.Test object at 0x2b1f5098f2d: name=foo, isValid=true>
アドレスを格納する属性はありません。私はPython 2.4.3を使用しています。
編集は:__reprでこれを行う方法を知っておくとよいでしょう__()
ソリューション(のpython 2.4.3用):あなたがid(obj)
でアドレスを取得することができ
def __repr__(self):
return "<%s.%s object at %s, name=%s, isValid=%s>" % (self.__module__,
self.__class__.__name__, hex(id(self)), self.name, self.isValid)
まず、古いPythonバージョンは使用しないでください。それ以外に、あなたがしようとしていることには '__repr__'があります。 – ThiefMaster