[PyQt] When can I use 'super' and When I can not

Steven Woody narkewoody at gmail.com
Fri Jan 16 01:01:35 GMT 2009


On Thu, Jan 15, 2009 at 10:18 PM, Jason Voegele <jason at jvoegele.com> wrote:
> On Tuesday 13 January 2009 09:53:08 pm Steven Woody wrote:
>> In the book 'Rapid GUI Programming with Python and Qt',  chapter 5,
>> the author said that the 'super' method won't work in an example code,
>> that is a override 'accept()' method, in the end of the 'accept()'
>> method, one need to call base class's 'accept()' method.  But if you
>> write the code using something like 'super(.., self).accept(self)', it
>> will fail, you have to rather write it as QDialog.accept(self).   But
>> in the same example program, in the form's __init__() method, it does
>> use the 'super()' method without problem.
>>
>> So, my question is, in exactly what case I can not use super()?  Thanks.
>
> My personal policy is to never use super() at all.  It has some subtle and
> dangerous behaviors that can really bite you if you're not careful.  See here:
>
>    http://fuhm.net/super-harmful/
>

So much thanks for your paper.  If I am still curious about the answer
for my original question, would anyone help?  Thanks.


More information about the PyQt mailing list