クラスの特殊メソッド

2010/10/13

Python2.5.4

使いそうな分だけ。

基本クラス用

__new__( cls[, args...])

引数で指定したクラスの新しいインスタンスを作るために呼び出す。 主に変更不能な型 (int, str, tuple など) のサブクラスでインスタンス生成をカスタマイズするために使う。

__init__( self[, ...])

インスタンス生成時に呼び出される。

__del__( self )

インスタンス消滅時に呼び出される。

__str__( self )

組み込み関数 str() および print 文によって呼び出され、そのオブジェクトを表す非公式の文字列を返す。 主にデバッグの際に使う。

呼び出し用(関数化?)

__call__(    self[, args...])
インスタンスが関数として ``呼ばれた'' 際に呼び出される。

属性値用

__getattr__(    self, name)

self.nameを呼び出そうとして、self.nameが無い場合に呼び出される。

__setattr__(self, name, value)

self.name = valueした時に呼び出される。この中でself.name=valueを使うと無限ループになるから注意。

__delattr___( self, name)

del self.nameされたときに呼び出される。

コンテナ型用

__len__( self)

len()で呼び出される。

__getitem__( self, key)

value =self[key](値の取得)の時に呼び出される。

__setitem__( self, key, value)

self[key]=value(値の代入)の時に呼び出される。

__delitem__( self, key)

del self[key](値の削除)の時に呼び出される。

__iter__( self)

イテレータが要求された際に呼び出される。

シーケンス型用

__setslice__(    self, i, j, sequence)

self[i:j]で値を代入する時に呼び出される。

__delslice__(    self, i, j)

self[i:j]で値を削除する時に呼び出される。

数値型用

__add__(    self, other)
__sub__(    self, other)
__mul__(    self, other)
__floordiv__(    self, other)
__mod__(    self, other)
__divmod__(    self, other)
__pow__(    self, other[, modulo])
__lshift__(    self, other)
__rshift__(    self, other)
__and__(    self, other)
__xor__(    self, other)
__or__(    self, other)

二項算術演算 ( +, -, *, //, %, divmod(), pow(), **, «, », &, ^, |) を実現するために呼び出される。

参照元

特殊メソッド名
http://www.python.jp/doc/2.5/ref/specialnames.html