1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. オブジェクトとクラス

オブジェクトとクラス

特殊メソッド

マジックメソッドと呼ばれているところもある
これらのメソッドの名前は、先頭と末尾がダブルアンダースコアー
(__)になっている。こういうメソッドは今までにも登場している。
__init__()は、渡された引数うを使ってクラス定義から新しく作成された
オブジェクトを初期化する。
次のコードは、equals()と呼んでいるっ通常のメソッドを使った試みです。

class Word():
def __init__(self, text):
self.text = tsxt

def equals(self, word2):
return self.text.lower() == word2.text.lower()
そして、3つの異なる文字列から3個のWordオブジェクトを作る
first = Word('ha')
second = Word('HA')
third = Word('eh')
小文字に変換して比較すれば、等しいと見なされる
first.equals(second)
true
first.equals(third)
False

しかし、if first == second と書ければ便利です。
equals()メソッドを__eq__()という特殊名に変更する
class Word():
def __init__(self, text)
self.text = text
def __eq__(self, word2):
return self.txt.lower() == word2.text.lower()
うまく動作するかどうかを見てみよう。
first = Word('ha')
second = Word('HA')
third = Word('eh')
first == second
true
first == third
False

比較のための特殊メソッド

__eq__(self,other)---------意味-self == other
__ne__(self,other)---------意味-self != other
__lt__(self,other)---------意味-self < other
__gt__(self,other)---------意味-self > other
__le__(self,other)---------意味-self <= other
__ge__(self,other)---------意味-self >= other

算術計算のための特殊メソッド

__add__(self,other)---------意味-self + other
__sub__(self,other)---------意味-self - other
__mul__(self,other)---------意味-self * other
__floordiv__(self,other)---------意味-self // other
__truediv__(self,other)---------意味-self / other
__mod__(self,other)---------意味-self % other
__pow__(self,other)---------意味-self ** other