進捗

2/28 p.284~p.286 17:30~20:00

特殊メソッドの学習をしていたがサンプルコードが見たかったのでこのサイトを参考にした。以下自分なりのまとめ


class Iaddition:
    def __init__(self,value):
        self.value = value
    def __iadd__(self,other):
        self.value += other
        return self           #return self.value += otherはできない。+=の式では無効
                              #self.value += other.valueと書いてインスタンスでi += 3と書くとエラー
        
"""
i = Iaddition(3)
i += 3           #i.value += 3だとこの場でアトリビュートを動かしているだけメソッドは動いてない。
i.value
"""
#6と表示される

class Iaddition2:
    def __init__(self,value):
        self.value = value
    def __iadd__(self,other):
        self.value += other
        return self.value
        
"""
i2 = Iaddition(4)
i2 += 3      
i2                #return self.valueにすると返される結果がint型になる。i2のインスタンス自体が数値。
                  #i2.valueにするとインスタンスではないint型にvalueアトリビュートはつかない。二重
"""
#7と表示される