steven at REMOVE.THIS.cybersource.com.au
Tue Feb 9 02:49:39 CET 2010
On Mon, 08 Feb 2010 21:59:18 +0100, Martin Drautzburg wrote:
> Just for the hell of it ...
> I can easily define __plus__() with three parameters. If the last one is
> optional the + operation works as expected. Is there a way to pass the
> third argument to "+"
How do you give three operands to a binary operator? Binary operators
only have two sides, a left and a right, so you can only fit two operands
Mathematicians solve this problem by using functions:
add(a, b, c, d)
In Python, you can do this:
>>> class F:
... def __add__(self, other, foo=None):
... print self, other, foo
... return 1
>>> F() + 3
<__main__.F instance at 0xb7f06f4c> 3 None
>>> F().__add__(3, 4)
<__main__.F instance at 0xb7f06d8c> 3 4
but if you do, people will laugh and point at you in the street.
More information about the Python-list