Shaun wrote: > Hi, > > I'm trying to overload the divide operator in python for basic arithmetic. > eg. 10/2 ... no classes involved. > > I am attempting to redefine operator.__div__ as follows: > > # my divide function > def safediv(a,b): > return ... > > # reassign buildin __div__ > import operator > operator.__div__ = safediv > > The operator.__dict__ seems to be updated OK but the '/' operator still > calls buildin __div__
It won't work that way. You cannot globally modify the behaviour of an operator, but you can customize how an operator works for your type. Consider: class safeint(int): def __div__(self, other): return safediv(self, other) safeint(10)/2 Reinhold -- http://mail.python.org/mailman/listinfo/python-list