[Python-Dev] Integer division transition

Charles G Waldman cgw@fnal.gov
Tue, 7 Nov 2000 10:30:16 -0600 (CST)


 > Guido van Rossum:
 > > No, we *could* use the 'import as' trick: define the syntax as
 > > 
 > > term: factor (('*'|'/'|'%'|NAME) factor)*
 > > 
 > > and add a check that NAME is "div" in the compiler.
 > > 
 > > But I don't know how comfy I am with a proliferation of hacks like
 > > this -- and it's likely to cause more confusing error messages.

And what is the compelling reason for going through all this instead
of just using the '//' symbol?  Because it might be confused for a C++
comment?  This is a weak argument AFAIAC.  Python is not C++ and
everybody knows that.

I think that making "div" an infix operator would be setting a
horrible precedent.  Currently, all infix operators "look like"
operators, i.e. they are non-alphabetic characters, and things that
look like words are either functions or reserved words.

There's already a "divmod" builtin which is a function, not an infix
operator.  I think it would be rather inconsistent to write, on the
one hand:

    divmod(10, 2)

and on the other:

    10 div 2


Long before the creation of python-dev, this issue had been discussed
numerous times on c.l.py, and the '//' operator was suggested several
times, and I don't think anybody ever had a problem with it...