On Thu, 29 Oct 2009 18:07:33 +0100, Giovanni Bajo 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? Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt