1
私はこのようなクラスを持っている:「x + = 5」(xはカスタムクラス)をxのプロパティに追加するにはどうすればよいですか?
class C(object):
a = 5
def __iadd__(self, other):
self.a += other
私はのような何かを行うことができるようにしたいと思います。同じbの
b = C()
b += 7
をまた持っていますが、7でB.A.に追加しかし、実際にこれを実行すると、bがNoneTypeオブジェクトに変わります。これは、C .__ iadd__が何も返さないためだと思います。
C.__ iadd__はself.aを変更してselfのコピーを返さなければなりませんか?オブジェクト全体をコピーして返すことなく、この種の追加を実装する方法はありますか?
"__iadd __()特殊メソッドはインクリメントの値で呼び出され、適切に変更された値を持つ新しいインスタンスを返さなければなりません" https://docs.python.org/3/whatsnew/2.0.html #拡張割り当て – vaultah