Python基礎

Pythonの特殊メソッド(__repr__,__str__,__bytes__,__bool__,__eq__)

Pythonの基本・入門講座リスト

Pythonの特殊メソッド(__repr__,__str__,__bytes__,__bool__,__eq__)使い方

pythonのインスタンスにアクセスする際に、内部的に別のメソッドを呼び出すことがあります。

例えば、a + bとするとき、内部でa.__add__(b)とaインスタンスの__add__()メソッドが呼び出しがされています。

これをPythonの特殊メソッドと言います。

 

以下のような、Pythonの特殊メソッドがあります。

object.__repr__ repr(object)のとき、呼び出され、オブジェクトの情報を表す文字列を返します。
object.__str__

str(object),print(object)のときに呼び出され、オブジェクトを文字列に変換して返します。__str__が定義されていないと、__repr__が呼び出されます。

object.__bytes__ bytes(object)などで呼び出され、オブジェクトをbytes型で返します。
object.__hash__ オブジェクトのハッシュ値で返します。
object.__bool__ obj1 or obj2 のようなブール演算を行うとき、呼び出されます。また、bool(obj)の場合にも呼び出されます。

 

比較演算

< object.__lt__(self, object)
<= object.__le__(self, object)
== object.__eq__(self, object)
!= object.__ne__(self, object)
> object.__gt__(self, object)
>= object.__ge__(self, object)

 

利用例