[Python-Dev] A Horrible Inconsistency
Raymond Hettinger
rhettinger at ewtllc.com
Thu May 25 23:17:35 CEST 2006
Fredrik Lundh wrote:
> >>> -1 * (1, 2, 3)
>()
> >>> -(1, 2, 3)
>Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
>TypeError: bad operand type for unary -
>
>We Really Need To Fix This!
>
>
The second one doesn't bug me. Unary minus on a sequence is meaningless.
The first is a bit odd. When using the * operator for sequence
repetition, I don't expect it to have the same commutative property as
multiplication. IOW, "seq * n" makes sense but "n * seq" is a bit
weird. Also, I'm not clear on the rationale for transforming negative
repetition counts to zero instead of raising an exception. OTOH,
neither of these has EVER been an issue for me or anyone I know.
Raymond
More information about the Python-Dev
mailing list