Unexpected result for list operator "+="
Joe Smith
JoeSmith at bogusaddress.com
Thu Jan 4 20:47:52 EST 2001
More information about the Python-list mailing list
Thu Jan 4 20:47:52 EST 2001
- Previous message (by thread): Unexpected result for list operator "+="
- Next message (by thread): Unexpected result for list operator "+="
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I knew about mutable v. immutable. I just got surprised at the side effect. I guess I have not used lists that much; otherwise, I would have probably used "L = L1[:]" before. While it makes sense after realizing what is going on, I just was surprised. Maybe I was thinking that it might copy on a change operation; this way "L = L1; L += L2" really does the same thing as "L = L1 + L2". (Including side effects.) Greg Jorgensen wrote: > Thanks to Fredrik, Alex, Tim, and Thomas for pointing out that Python only > binds names to objects under the hood. I was guessing (maybe wrongly) that > the original poster might not know about mutable and immutable objects, > bindings, etc. That's why I wrote "Assignment of immutable objects > essentially makes a copy of the object." I lifted the explanation almost > verbatim from Beazley's "Python Essential Reference," page 19. Beazley wrote > "... effectively creates a copy..." but it amounts to the same thing--a > simplification. The real distinction--that assignment operations on > immutable objects create new objects (or bind a reference to a different > existing object)--is important but perhaps more information than necessary > to answer the question. > > I appreciate the clarifications and detailed implementation info.
- Previous message (by thread): Unexpected result for list operator "+="
- Next message (by thread): Unexpected result for list operator "+="
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list