Yes, Python supports in place operators to avoid this:
def __iadd__(self, other):
if isinstance(other, dict):
self.update(other)
return self
This would get called for `d += other`.