Problems trying to override __str__ on path class

Mike Krell no at spam.com
Mon Oct 23 09:28:57 EDT 2006


Peter Otten <__peter__ at web.de> wrote in
news:ehhund$1fi$00$1 at news.t-online.com: 

> 
> So my assumption was that you are using a pre-2.1 version of path.
> I suggest that you double-check that by inserting a
> 
> print path.__version__
> 
> into the code showing the odd behaviour before you start looking for
> more exotic causes.

Alas, the print statement says "2.1".  So there's a definite platform / 
environment difference here, but that isn't it.  
 
> For delegation to work you need (untested)
> 
> class NormPath(object):
>    def __div__(self, other):
>        return self.__class__(self._path / other)
>    # ...

I see.  The base class implementation is throwing up its hands at the 
unknown type NormPath.  One needs to substitute the parameter in every 
case where the base class implementation is called.  That kind of kills 
the attractiveness of the technique for new style classes, unless a way 
could be done to do it programatically instead of explicitly for each 
method.  Of course, if I could get the simple override to work, the need 
to do this would disappear.

   Mike   



More information about the Python-list mailing list