自作の型に+演算子の計算を定義する

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

Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。