dynamically modify help text

Stephen Hansen me+list/python at ixokai.io
Mon Jun 28 16:48:52 EDT 2010


On 6/28/10 1:13 PM, Emile van Sebille wrote:
> On 6/28/2010 12:02 PM Benjamin Kaplan said...
>> Just to save the OP some trouble later on: this optimization is done
>> for most of the __*__ methods. Overriding __add__ on an instance won't
>> change the behavior of a + b.
>
> ActivePython 2.4.1 Build 247 (ActiveState Corp.) based on
> Python 2.4.1 (#65, Jun 20 2005, 17:01:55) [MSC v.1310 32 bit (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> class Test: pass
> ...
>  >>> i = Test()
>  >>> i+1
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> TypeError: unsupported operand type(s) for +: 'instance' and 'int'
>  >>> def __add__(self): return 6
> ...
>  >>> i.__add__ = __add__
>  >>> i+1
> 6
>  >>>
>
> Was this in reference to a specific python version?

No, its a reference to new-style vs old-style classes. If Test inherits 
from object, it won't work. Its one of several subtle behaviorial 
differences between old/new classes.

-- 

    ... Stephen Hansen
    ... Also: Ixokai
    ... Mail: me+list/python (AT) ixokai (DOT) io
    ... Blog: http://meh.ixokai.io/




More information about the Python-list mailing list