Python Class __div__ issue
19,125
Solution 1
Python 3.x uses __truediv__
and __floordiv__
. __div__
is 2.x-only.
Solution 2
had the same problem the other day.
see if __future__.division is active in your environment. if so, you need to define __truediv__ as well.
http://docs.python.org/2/library/operator.html#mapping-operators-to-functions
Author by
Admin
Updated on June 15, 2022Comments
-
Admin almost 2 years
The tuples represent fractions. I'm trying to divide the fractions by multiplying by the reciprical
class Test(): def __init__(self): self._x=(1,2) def __div__(self,div_fraction): return (self._x[0]*div_fraction[1],self._x[1]*div_fraction[0]) y=Test() z=y/(1,3) print(z)
Gives me:
Traceback (most recent call last): File "E:/test.py", line 8, in <module> z=y/(1,3) TypeError: unsupported operand type(s) for /: 'Test' and 'tuple'
Yet when I change the
__div__
to__mul__
and use*
instead of/
it does what it should.How do I fix the exception I'm getting?