The problem stems from the use of ExtensionClass, this snippet from http://www.digicool.com/releases/ExtensionClass explains : ---------------------------------------------------------------------------- -------------------- A problem occurs when trying to override methods inherited from Python base classes. Consider the following example: from ExtensionClass import Base class Spam: def __init__(self, name): self.name=name class ECSpam(ExtensionClass.Base, Spam): def __init__(self, name, favorite_color): Spam.__init__(self,name) self.favorite_color=favorite_color This implementation will fail when an ECSpam object is instantiated. The problem is that ECSpam.__init__ calls Spam.__init__, and Spam.__init__ can only be called with a Python instance (an object of type "instance") as the first argument. The first argument passed to Spam.__init__ will be an ECSpam instance (an object of type ECSPam). ---------------------------------------------------------------------------- -------------------- In order to access the base you need to use : B.inheritedAttribute('__init__')(self,some, more) Unfortunately, this only works in single inheritance hierarchies. Robert Leftwich
-----Original Message----- From: Sascha Matzke [mailto:sascha@bespin.escape.de]On Behalf Of Sascha Matzke Sent: Sunday, 17 October 1999 12:07 To: zope@zope.org Subject: [Zope] Problems with inheritance in python base products
Hello,
I want to design 2+ products which all share certain base functionality. So I moved some code into Shared.
Now, when I try to create instances of the products I get the following error:
Error Type: TypeError Error Value: unbound method must be called with class instance 1st argument
I use the following code:
class B(A):
def __init__(self, some, more, parameters): A.__init__(self, some, more)
In my python knowlegde the above should be correct...
Any hints...
Sascha PS: I know ZClasses, but I want to use pure python for comfort reasons... -- .-> Sascha Matzke - sascha@bespin.de - http://www.bespin.de -. | Das Kapital ist die Flamme, der Faschismus das Benzin | | Anarchist Academy | `-- On this earth for 24 years, 3 days <----------------'
_______________________________________________ Zope maillist - Zope@zope.org http://www.zope.org/mailman/listinfo/zope
(Related lists - please, no cross posts or HTML encoding!
To receive general Zope announcements, see: http://www.zope.org/mailman/listinfo/zope-announce
For developer-specific issues, zope-dev@zope.org - http://www.zope.org/mailman/listinfo/zope-dev )