読者です 読者をやめる 読者になる 読者になる

<Python> __repr__

みげるっちのブログを読みつつ、ふーんと流していた箇所の意味が少しわかった。

__repr__は、オブジェクトを示す番号を返す。
で、クラス class中で、__repr__をオーバーライトしてしまえば、
自分の任意の値を返すようにできる、、、わかりやすくなる。
っぽい。

In [102]: class Hage:
     ...:     id = 1
     ...:     Hikari = 5000
     ...:     

In [103]: class StrongHage(Hage):
     ...:     id = 1
     ...:     Hikari = 50000000
     ...:     def __repr__(self):
     ...:         return __class__.__name__
     ...:     

In [104]: Taro = Hage()

In [105]: Jiro = StrongHage()

In [106]: Taro
Out[106]: <__main__.Hage at 0xbabec50>

In [107]: Taro.__repr__()
Out[107]: '<__main__.Hage object at 0x000000000BABEC50>'

In [108]: Jiro
Out[108]: StrongHage

In [109]: Jiro.__repr__()
Out[109]: 'StrongHage'

マニュアル*

[http://docs.python.jp/3.5/reference/datamodel.html#object.repr]

参考

d.hatena.ne.jp