> I used a the recipe (http://aspn.activestate.com/ASPN/Coo.../Recipe/198078)
> used to wrap methods for logging purposes. logging classes. But it does seem
> to work well with classes inherit form other classes - i get recursion
> errors!
>
> Here is an example of the classes ..
>
> class Base(MetaClass):
>
> class BFrame(BaseFrame):
> def __init__(self, pathname=''):
> Base.__init__(self, pathname = pathname)
>
> When i instatiate BiasFrame()
Sorry, but I can't see how this code example above can work;
- there is no definition of class Base. There's not even 'pass' statement!
- Where is MetaClass's definition?
- you instantiate BiasFrame, but that's not defined.
- BFrame inherits from BaseFrame, which I don't see defined inherit.
- I definitely would advise against calling Base.__init__ if you inherit BFrame
from BaseFrame: BaseFrame.__init__ makes more sense.
But rather, use super instead. In Python 2:
super(Base, self).__init__(pathname=pathname)
Evert
>
> below is the OUTPUT
>
> logmethod <BFrame object at 0x9c32d90> __init__ () {}
> logmethod <BFrame object at 0x9c32d90> __init__ () {'pathname': ''}
> logmethod <BFrame object at 0x9c32d90> __init__ () {'pathname': ''}
> logmethod <BFrame object at 0x9c32d90> __init__ () {'pathname': ''}
> logmethod <BFrame object at 0x9c32d90> __init__ () {'pathname': ''}
> .
> .
> RuntimeError: maximum recursion depth exceeded in cmp
>
> It starts with the __init__ of BFrame, that's correct. In the __init__ of
> BFrame is a call to Base.__init__ with the pathname as argument. That is the
> second call to __init__ in the output, but the class is wrong ! Instead of
> the __init__ of Base the __init__ of BFrame is called.
>
> is there any way i can correct this?
>
> --
> += Johnson
> --------------------------------------
> _______________________________________________
> Tutor maillist - [email protected]
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor