Hi All, Now that I am really diving into Python, I encounter a lot of things that us newbies find difficult to get right. I thought I understood how super() worked, but with 'private' members it does not seem to work. For example;
>>> class A(object): ... def __baseMethod(self): ... print 'Test' Deriving from A, and doing; >>> class D(A): ... def someMethod(self): ... super(A, self).__baseMethod() ... print 'test3' Will not work; >>> p = D() >>> p.someMethod() Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "<interactive input>", line 3, in someMethod AttributeError: 'super' object has no attribute '_D__baseMethod' Is it possible to call a private base method? I come from a C++ background, and I liked this construction as my base class has helper methods so that I do not have to duplicate code. When I do; >>> class E(object): ... def someMethod(self): ... print 'Hello' ... >>> class F(E): ... def otherMethod(self): ... super(F, self).someMethod() ... print 'There' ... >>> p = F() >>> p.otherMethod() Hello There >>> This seems to work. Thanks in advance, - Jorgen -- http://mail.python.org/mailman/listinfo/python-list