subclass constructor problem
Diez B. Roggisch
deets at web.de
Tue Oct 5 11:52:31 EDT 2010
Nikola Skoric <nick at fly.srk.fer.hr> writes:
> I have a superclass Element and a subclass Family. All Family.__init__() does is run Element.__init__() and self.__parse(). For some reason it seems like self.__parse() isn't run. Here is the code:
> http://github.com/dijxtra/simplepyged/blob/8d5a6d59268f6760352783cce6b97c0b5e75b8be/simplepyged/simplepyged.py
>
> In this version everything works fine. Notice lines 698, 703 and 708. If I remove those lines, those 3 methods return None or []. Seems like __init__ won't run __parse, but other methods run it without problem.
>
> So, what obvious thing am I missing? :-)
Works without a hitch for my condensed example:
class Element(object):
def __init__(self):
pass
class Family(Element):
def __init__(self):
Element.__init__(self)
self.__parse()
def __parse(self):
self.parse = "Family.__parse"
f = Family()
print f.parse
Btw, you are a bit on the overprotective side. The convention for
marking attributes (methods or objects alike) "private" is by prefixing
them with a *single* underscore.
Diez
More information about the Python-list
mailing list