Why does += behave unexpectedly on lists?
The general answer is that += tries to call the __iadd__ special method, and if that isn’t available it tries to use __add__ instead. So the issue is with the difference between these special methods. The __iadd__ special method is for an in-place addition, that is it mutates the object that it acts on. The … Read more