Missing member
Ayaz Ahmed Khan
ayaz at dev.slash.null
Mon Feb 5 14:52:51 EST 2007
"Paul McGuire" typed:
> Here's a suggestion: use new-style classes. Have _BaseEntity inherit
> from object, allows you to use super for invoking methods on super
> classes. Instead of:
> class Entity(_BaseEntity):
> def __init__(self, type, x = 0, y = 0):
> _BaseEntity.__init__(self, type, x, y)
>
> You enter:
> class Entity(_BaseEntity):
> def __init__(self, type, x = 0, y = 0):
> super(Entity,self).__init__(type, x, y)
>
> This makes it easier to update your inheritance hierarchy later. New-
> style classes have other benefits too.
I am still a beginner to Python, but reading that made me think on
impluse, "What happens in case of one class inheriting from two or more
different classes?"
Having written a small test case and testing it, I find that
super().__init__() calls the __init__() of the first of the class in
the list of classes from which the calling class inherits. For example:
class C(A, B):
def __init__(self):
super(C, self).__init__()
calls A's __init__ explicity when an instance of C is instantiated. I
might be missing something. I didn't know that.
--
Ayaz Ahmed Khan
A witty saying proves nothing, but saying something pointless gets
people's attention.
More information about the Python-list
mailing list