[Python-Dev] surprising bug in s.capitalize()?
30 Nov 2000 18:21:42 +0000
email@example.com (Barry A. Warsaw) writes:
> I was just surprised by something I've never observed before from
> string.capitalize(). There is clearly either a bug (really two) in
> the code or in the documentation.
> >>> '__Myfoo'.capitalize()
> Huh? The documentation says:
> capitalize ()
> Return a copy of the string with only its first character capitalized.
> So it's only doing one of the three things it's promising! For one
> thing, it's modifying something other than the first character, and
> for another, it's actually swapping the case of the character it /is/
> changing. At least it returns a copy. :)
That's not a ridiculous reading of the above docs. It all depends
whether you think "being capitalized" is a property or an action, I
> Given the documentation, I would have expected the return value to be
> the same as the original string, i.e. unchanged.
I would probably have expected that, too. But I'm not really sure
> So which is it? Does the description of the method need to be made
> more complicated, or does the code need to be simplified <wink>?
Clarifying the docs won't break any code. Not sure that changing the
code will much, either.
Oooh, here's something a bit more serious though:
Something obviously Needs To Be Done. My hunch is to change
string_capitalize, but that may be just me (and probably Barry).
Famous remarks are very seldom quoted correctly.
-- Simeon Strunsky