クラスの特殊メソッド 割り算「/」 __truediv__
Pythonのクラスにおいて、割り算演算子 / をカスタマイズするには、__truediv__ メソッドをクラス内で定義します。以下は、__truediv__ メソッドを使って割り算演算子 / をカスタマイズする例です:
python
class MyNumber: def __init__(self, value): self.value = value def __truediv__(self, other): if isinstance(other, MyNumber): if other.value == 0: raise ValueError("Division by zero is not allowed") # もしもotherがMyNumberのインスタンスであれば、値を割り算して新しいインスタンスを返す return MyNumber(self.value / other.value) else: # もしotherがMyNumberのインスタンスでない場合、例外を発生させるか、エラーメッセージを返すなどの処理ができます raise ValueError("Can only divide MyNumber instances") def __str__(self): return str(self.value) # インスタンスを作成 num1 = MyNumber(15) num2 = MyNumber(3) # 割り算演算子を使用 result = num1 / num2 print(result) # 結果: 5.0
この例では、MyNumber クラス内に __truediv__ メソッドが定義され、2つの MyNumber インスタンスを割り算することができるようになります。num1 / num2 の演算が行われると、__truediv__ メソッドが呼び出されて、新しい MyNumber インスタンスが返されます。また、0で割ることを防ぐためのチェックも行われています。
__truediv__ メソッドは割り算演算子に特化したカスタマイズを提供します。他の演算子に対しても同様に、特殊メソッドを使用してカスタマイズできます。

ディスカッション
コメント一覧
まだ、コメントがありません