Проблема в том, что если var = None, то метод __iadd__
вызывается None, а не MyObject
class myobject:
def __iadd__(self, other):
if other is None:
return self
else:
pass # Do stuff here
Это прекрасно работает:
var = myobject()
var += None
Но этоwont:
var = None
var += myobject()
Лучший способ справиться с этим - просто поймать ошибку:
try:
var += myobject()
except TypeError:
var = myobject()