On Feb 8, 12:59 pm, Martin Drautzburg <martin.drautzb...@web.de> 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 "+"
If, for some reason, you wanted to define a type for which it makes sense to "add" three objects, but not two, you can get the effect you want, kind of. (a + b + c) is useful (a + b) is meaningless You can have __add__ return a closure for the first addition, then perform the operation on the second one. Example (untested): class Closure(object): def __init__(self,t1,t2): self.t1 = t1 self.t2 = t2 def __add__(self,t3): # whole operation peformed here return self.t1 + self.t2 + t3 class MySpecialInt(int): def __add__(self,other): return Closure(self,other) I wouldn't recommend it. Just use a function call with three arguments. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list