Nikola Skoric <n...@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 -- http://mail.python.org/mailman/listinfo/python-list