On 01/28/2014 09:18 PM, Ethan Furman wrote:
On 01/28/2014 06:50 PM, Larry Hastings wrote:
I think the "times behaves differently when passed by name versus passed by position" behavior falls exactly into this
category, and its advice on how to handle it is sound.

I don't agree with this.  This is a bug.  Somebody going through (for example) a code review and making minor changes so the code is more readable shouldn't have to be afraid that [inserting | removing] the keyword in the function call is going to *drastically* [1] change the behavior.  I understand the need for a cycle of deprecation [2], but not fixing it in 3.5 is folly.

It's a bug.  But it's also a longstanding bug, having been a part of Python since 2.7.

Python is the language that cares about backwards-compatibility--bugs and all.  If your code runs on version X.Y, it should run without modification on version X.(Y+Z) where Z is a positive integer.

Therefore it would be inappropriate to remove the "times=-1 when passed by keyword repeats indefinitely" behavior without at least a full deprecation cycle.  Personally I'd prefer to leave the behavior in, undocumented and deprecated, until Python 4.0.


/arry