__div__ not recognized automatically

Peter Otten __peter__ at web.de
Thu Nov 2 15:52:25 CET 2006


Anton81 wrote:

> Hello!
> 
> I wrote a class
> 
> class NumX:
>   ...
>   def __add__(self,other):
>     ...
>   def __div__(self,other):
>     if not isinstance(other,NumX): other=NumX(other)
>     ...
> 
> Somewhere else I use
> 
> a=(b+c)/2
> 
> where all variables are of NumX Type. When I execute the program it
> complains that it can't find an operator "/" for "instance" and "integer".
> However if I use pdb the same command works when started on the prompt.
> Also the manual execution
> 
> a=(b+c).__div__(2)
> 
> works. Any suggestions what goes wrong?

If you have the

from __future__ import division

statement, you need to override __truediv__(), not __div__()

Peter



More information about the Python-list mailing list