On Sat, 17 Jan 2009 23:58:41 +0800, Steven Woody <[email protected]> wrote: > On Fri, Jan 16, 2009 at 8:22 PM, Phil Thompson > <[email protected]> wrote: >> On Fri, 16 Jan 2009 09:01:35 +0800, Steven Woody <[email protected]> >> wrote: >>> On Thu, Jan 15, 2009 at 10:18 PM, Jason Voegele <[email protected]> >> 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. >> >> It's to do with a conflict with the hackish implementation of super() >> (not >> doing attribute lookup in the normal way) and the way SIP implements lazy >> methods. >> >> Phil >> > > so ... in what case can I use super() safely and in what case I can not?
I can't promise it is safe at all. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
