[Python-Dev] mutable integers
Guido van Rossum
guido@python.org
Mon, 16 Oct 2000 09:30:44 -0500
Rob W. W. Hooft:
> Just checking my E-mail coming back from holidays, I see:
[...]
> def leapdays(y1, y2):
> """Return number of leap years in range [y1, y2).
> ! Assume y1 <= y2."""
> ! y1 -= 1
> ! y2 -= 1
> ! return (y2/4 - y1/4) - (y2/100 - y1/100) + (y2/400 - y1/400)
>
> I am worried about the use of "-=" here. The code basically says: "if the
> arguments are mutable numeric types, I'd like to modify them in place". In
> c.l.py it has been stressed multiple times that "-=" is not the same as
> "= -". I think this is clearly a place where "= -" is preferable over
> "-=". Even though you might think people will always call this with
> python integers, you can never be sure enough.
Hmm... Your fear sounds a little paranoid for this particular case,
but I can't say that I totally disagree in general. This is
definitely something to keep in mind when writing polymorphic
functions for which a NumPy array might be an acceptable input
argument.
I don't think it's worth checking in a patch in this case.
--Guido van Rossum (home page: http://www.python.org/~guido/)