[Python-Dev] Re: [Fwd: Discussion: Introducing new operators
formatrix computation]
Huaiyu Zhu
huaiyu_zhu@yahoo.com
Fri, 14 Jul 2000 16:33:13 -0700 (PDT)
On Sat, 15 Jul 2000, Fredrik Lundh wrote:
> Huaiyu Zhu wrote:
> > Given what's quoted below, would you think . is the best choice?
>
> if what you're saying means that:
>
> >>> 1.+2.
> 3.0
>
> becomes:
>
> >>> 1.+2.
> Traceback (innermost last):
> File "<stdin>", line 1, in ?
> TypeError: __dotadd__ nor __rdotadd__ defined for these operands
>
> it's clearly not a good choice.
>
> </F>
>
To quote from my c.l.py post:
On Fri, 14 Jul 2000 11:38:51 -0600, Bjorn Pettersen <bjorn@roguewave.com>
wrote:
>
>Well, this could actually be generally useful, but not with the .+
>syntax (since the dot would interfer with methods on the sequence
>object).
My impression from the python-dev list is that this is not the case. Some
say it is easy to distinguish
a. + b
a .+ b
Some say it is difficult. But the first is a syntax error anyway.
The only real danger is
3. + a
3 .+ a
But in this case pointwise operation does not make sense.
So I suppose the following rules would resolve all the ambiguities:
Dot binds with preceding number. Otherwise it binds with following
operator. Otherwise it is a member indicator. Otherwise it is syntax error.
Examples:
2.+b
a.+b <-- only this is new
a.b
a.3
Huaiyu