Brian Munroe wrote:
My example:class A(object): def __init__(self, name): self.__name = name def getName(self): return self.__name class B(A): def __init__(self,name=None): super(A,self).__init__() def setName(self, name): self.__name = name if __name__ == '__main__': a = A('class a') print a.getName() b = B('class b') print b.getName() b.setName('class b, reset') print b.getName() I get the following error: mtinky:~ brian$ python teste.py class a Traceback (most recent call last): File "teste.py", line 23, in <module> print b.getName() File "teste.py", line 7, in getName return self.__name AttributeError: 'B' object has no attribute '_A__name' Am I *not* using super() correctly? Also, did I define my the class B constructor correctly? -- http://mail.python.org/mailman/listinfo/python-list
Tell us what you are trying to do and what you expected to happen. If you are trying to do simple inheritance, you don't need the supers, and you should not invoke the name mangling implied by the double underscore.
If you *are* trying to use the name mangling, then you still don't need the super.
Gary Herron -- http://mail.python.org/mailman/listinfo/python-list
