Issue 13137: from future import division breaks ad hoc numeric types (original) (raw)

I believe that the use of future.division may have unintended consequences with user types that define division.

The following fails:

from __future__ import division

class NumericType(object):
    def __init__(self,x):
        self.x = x

    def __div__(self,rhs):
        return self.x/rhs

print NumericType(3.0) / 2.0

with the error message

File "C:\proj_py\learning\future_bug\future.py", line 10, in print NumericType(3.0) / 2.0 TypeError: unsupported operand type(s) for /: 'NumericType' and 'float'

Remove the line from __future__ import division and everything works fine.

I am using Python 2.7.2