Python独学ならTech-Joho TOP > > 自作の型に+演算子の計算を定義する
問題
下のコードを実行するとエラーが発生する。
NewStrを修正して、intとの+演算子の計算を実行すると、両方の値を文字列として結合して返すようにせよ。
class NewStr(str): pass x = NewStr('20') y = 20 answer = x + y print(answer)
下の欄に回答を入力し、「回答完了」を押して下さい!回答例が表示されます。
実行結果の例
下のように文字列として結合した結果が戻る
2020
回答例
メソッド__add__を使うと良い。
class NewStr(str): def __add__(a, b): return str(a) + str(b) x = NewStr('20') y = 20 answer = x + y print(answer)
解説
あるクラスにメソッド__add__があると、”+”演算子の計算が実行されるときに__add__が呼び出されれます。
つまり、__add__は”+”の計算内容を定義します。
これを使って、自作クラスの”+”計算ができるようになります。
下の例は、intを改造した例です。
class NewInt(int): def __add__(a, b): return int(a) + int(b) x = NewInt(20) y = "20" answer = x + y print(answer)
下に公式情報があります。
Python3 reference operator