On 10/2/2010 8:36 AM, Carl Banks wrote:
On Oct 1, 9:38 pm, Steven D'Aprano<st...@remove-this-
cybersource.com.au> wrote:
If so, then we haven't gained anything, and the only thing that would
satisfy such people would be for every function name and operator to be
unique -- something which is impossible in practice, even if it were
desirable.
That is the ideal, yes, and no, it's not impossible.
I would be satisfied if operators were A) reserved for the most common
and useful operations, and B) should not be used for more than one
thing.
The big mistake with "sequence multiplied by number" is that
it's a mixed-mode operation. When overloads are restricted to
requiring the same type on both sides, the various meanings
of the operator are disjoint. That's less confusing.
"numpy" implements array*int, with completely different
semantics than those of sequences.
>>> a = numpy.array([1,2,3])
>>> a*2
array([2, 4, 6])
>>> a*-1
array([-1, -2, -3])
"numpy" gives "+" and "*" their arithmetic meaning.
As an exercise to the reader, what's the result of:
numpy.array([1,2,3]) + [4,5,6]
Concatenate? Add? Raise exception?
John Nagle
--
http://mail.python.org/mailman/listinfo/python-list