On Fri, 30 Oct 2009 16:43:16 +0000, Phil Thompson <[email protected]> wrote: > On Thu, 29 Oct 2009 18:07:33 +0100, Giovanni Bajo <[email protected]> > wrote: >> Hi Phil, >> >> it looks like SIP 4.9 changed behaviour wrt monkey-patching of virtual >> methods. If you use a regular Python function (or a lambda) to do the >> monkey patching, the function is passed 'self' when it's invoked. >> >> This change in behaviour is undocumented among the incompatibilities >> with earlier versions. Moreover, it break existing code in a way that it >> is hard to fix (there is no easy way to grep all occurrences); it is >> also hard to debug because the resulting exception (eg: "function takes >> no argument (1 given)") does not usually have any traceback attached. >> Lastly, it does not match what Python itself does when monkey-patching a >> method with a function; with regular Python objects, the function is not >> passed 'self' when it's invoked as a method. >> >> What's your position on this? Was this change in behaviour a rationale >> choice or just an unwanted regression? > > It should behave in the same way as regular Python classes do - which it > does (both for Python v2 and v3) in my tests. > > Can you provide me with a test which shows different behavior?
Ahh - hang on, just realised my test is broken... Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
