Anton81 <us*****@anton.e4ward.comwrote:
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?
Post some code which actually demonstrates the problem.
Eg, change this code until it does demonstrate the problem
------------------------------------------------------------
class NumX(object):
def __init__(self, value):
self.value = long(value)
def __add__(self,other):
if not isinstance(other,NumX): other=NumX(other)
return NumX(self.value + other.value)
def __div__(self,other):
if not isinstance(other,NumX): other=NumX(other)
return NumX(self.value / other.value)
def __str__(self):
return "%s(%s)" % (self.__class__.__name__, self.value)
a = NumX(4)
b = NumX(2)
print a,b
print a+b
print (a+b)/2
------------------------------------------------------------
This prints
------------------------------------------------------------
NumX(4) NumX(2)
NumX(6)
NumX(3)
------------------------------------------------------------
--
Nick Craig-Wood <ni**@craig-wood.com--
http://www.craig-wood.com/nick