[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] Re: Monkey-patcing virtual methods with functions: change in
From: Phil Thompson <phil () riverbankcomputing ! co ! uk>
Date: 2009-10-30 16:43:16
Message-ID: 717211a22fce3cb650f8e53bfac0b3af () localhost
[Download RAW message or body]
On Thu, 29 Oct 2009 18:07:33 +0100, Giovanni Bajo <rasky@develer.com>
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic