"Dieter" == Dieter Maurer <dieter@handshake.de> writes:
> Luca Manini writes: [...] When overriding a superclass (base) method (foo) in a subclass (sub), one often wants to call the inherited one. In 'pure' (bare?) Python you can do this: class sub (base): def foo(self, arg): sub.foo (self, arg) I tried this with sub inheriting from SimpleItem.SimpleItem and from an external 'pure python' class and it does not work. > This is an ExtensionClass/Python incompatibility, documented > with ExtensionClass. You need "inheritedAttribute" to work > around the problem, documented too. > Dieter As always, Dieter (thanks) solved the problem! . 1) documented means (I think) read ..../zope/lib/python/StructuredText/regressions/ExtensionClass.stx funny place for that piece of really interesting info. 2) You need inheritedAttribute means (I do that way and it works): class sub (base): def foo(self, arg): sub.inheritedAttribute ('foo') (self, arg) Any other trick like this in constructing (product's) Zope classes from 'pure-python' ones? I do prefere to have as much python code as possible out of Zope (so that it can be use without Zope), and overriding inherited methods is (I think) a very basic tool in this. bye, Luca