squared functions--most Pythonic way?
greg
greg at cosc.canterbury.ac.nz
Sun Jun 30 03:24:49 EDT 2002
Janto Dreijer wrote:
>
> def addNumbers(k):
> def f(x):
> a = addNumbers(x + k)
> a.val = x+k
> return a
> return f
>
> >>> addNumbers(9)(5)(2)(4)(6).val
> 26
>
> Now if only I could figure out how to use __repr__() so I don't
> need that ".val". It also fails when passed only one number. i.e
> addNumbers(5). Help?
class AddNumbers:
def __init__(self, x):
self.val = x
def __call__(self, k):
return AddNumbers(self.val + k)
def __repr__(self):
return repr(self.val)
addNumbers = AddNumbers(0)
>>> print addNumbers(9)(5)(2)(4)(6)
26
>>> print addNumbers(5)
0
--
Greg
More information about the Python-list
mailing list