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

Reply via email to