a+=b vs a=a+b : clarify the difference is not universal

Made the text say it depends on class, and rest of explanation talk of lists, not objects.
This commit is contained in:
Beni Cherniavsky-Paskin 2017-09-06 09:12:37 +03:00 committed by GitHub
parent 330cb601cf
commit c95ba00160
1 changed files with 3 additions and 3 deletions

6
README.md vendored
View File

@ -858,11 +858,11 @@ a += [5, 6, 7, 8]
#### 💡 Explanation:
* a += b doesn't behave the same way as a = a + b
* `a += b` doesn't always behave the same way as `a = a + b`. Classes *may* implement the op= operators differently, and lists do this.
* The expression `a = a + [5,6,7,8]` generates a new object and sets `a`'s reference to that new object, leaving `b` unchanged.
* The expression `a = a + [5,6,7,8]` generates a new list and sets `a`'s reference to that new list, leaving `b` unchanged.
* The expression `a + =[5,6,7,8]` is actually mapped to an "extend" function that operates on the object such that `a` and `b` still point to the same object that has been modified in-place.
* The expression `a + =[5,6,7,8]` is actually mapped to an "extend" function that operates on the list such that `a` and `b` still point to the same list that has been modified in-place.
---