On 24/04/13 20:32, Oscar Benjamin wrote:
On 24 April 2013 20:07, Alan Gauld <alan.ga...@btinternet.com> wrote:
On 24/04/13 16:52, Dave Angel wrote:
Does it mean? ; totalViruses[i] = totalViruses[i]/float(numTrials)
As the others have said, that's exactly right, at least if
totalViruses[i] is immutable, like an int or a float.
What difference does immutability make here?
The subtle distinction that Dave is referring to is about modifying an
object in place vs rebinding a name to a newly created object.
Sure, the bejhaviour with regard to the objects after the opreation is
slightly different. But it makes noi dsifference to the duality of
x += n
v
x = x + n
The mutability issues are identical.
Which behaviour occurs is entirely up to the author of the __iadd__
method of the class in question. This method can modify and return
self or it can return a different object.
This does make a difference because iadd (etc) can make a difference and
I had forgotten that there are a separate set of operator methods for
the ixxx operations, I was assuming that ixxx called the standard xxx.
So in the special case of a user type implementing xxx differently to
ixxx the behaviour might differ. But for all other cases I can think of
the duality will still work? Apart from this exception
x += y
will yield the same result as
x = x + y
I think....
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor