massimo s. a écrit : >> At this point, it seems too much a deep object-oriented hell to be >> able to dig it myself. Would you help me getting some cue on the >> problem? > > Update. Now I know that: > - every sane Python class should return <type 'instance'> after > type(self)
Certainly not, unless you're using a pretty old Python version. 'instance' type means old-style classes - the legacy Python object model, replaced some years ago with a *much* better one ('new-style' classes). IIRC, this (now dying) legacy object model should disappear with Py3K. > - when disabling the multiple-inheritance-hack, the situation comes > back to normal I may be wrong here - I don't use old-style classes, and I avoid multiple inheritance whenever I can - but I think this may has to do with mixing old-style and new-style classes. > What happens that makes the wxFrame class different from the cmd.Cmd > class? wxFrame is obviously a new-style class. <side-note> wrt/ this snippet: for plugin_name in self.config['plugins']: try: plugin=__import__(plugin_name) try: print type(self) eval('plugin.'+plugin_name+'Commands._plug_init(self)') except AttributeError: pass except ImportError: pass You may want to try this instead: for plugin_name in self.config['plugins']: try: plugin=__import__(plugin_name) except ImportError: # eventually do something like logging the error ? continue try: cmdplug = getattr(plugin, plugin_name+'Commands') cmdplug._plug_init(self) except AttributeError: # eventually do something like logging the error ? continue </side-note> -- http://mail.python.org/mailman/listinfo/python-list