inconsistency with += between different types ?
Andreas.Leitgeb at siemens.at
Wed Aug 7 20:32:49 CEST 2002
Bernhard Herzog <bh at intevation.de> wrote:
> list-python at ccraig.org (Christopher A. Craig) writes:
>> Andreas.Leitgeb at siemens.at (Andreas Leitgeb) suggested:
>>> [ restrict __i...__-methods to enforce sane-ness ]
>> You do realize that at the end of this += would only apply to lists
>> [...] Because ints,
>> longs, floats, tuples, and in the future rationals are all immutable
>> and thus cannot return self.
> So what? Immutable objects don't have to implement __iadd__ et al. at
> all and in fact ints don't have __iadd__. Python falls back to calling
> __add__ and normal assignment automatically.
That's exactly what I meant.
For immutable objects, __iadd__ et al. simply make no sense (IMHO).
To Christopher and other defendants of status quo:
Do you know of any real use that a not-self-mutating __ixxx__
may have, which its non-i version __xxx__ could not do ?
(I do *not* intend to argue that just because you perhaps cannot think
of any at the moment, that the suggestion would necessarily be good,
but if instead you happen to know a good use then we could instantly
short-cut the discussion.)
PS: The ability to write intendedly obfuscated Python does not count :-)
Newsflash: Sproingy made it to the ground !
read more ... <http://avl.enemy.org/sproingy/>
More information about the Python-list