Using __mul__
Sam Jervis
sam at heffalump.me.uk
Sat Jul 3 10:38:24 EDT 2004
Thomas Philips wrote:
> To compute the product of a list of numbers, I tried entering
>
>>>>reduce(__mul__,[1,2,3])
>
>
> Traceback (most recent call last):
> File "<pyshell#0>", line 1, in -toplevel-
> reduce(__mul__,[1,2,3])
> NameError: name '__mul__' is not defined
>
> I can get the answer I want by defining a function that returns the
> product of two numbers:
>
>>>>def product(x,y):
>
> return x*y
>
> and then using it:
>
>>>>reduce(product,[1,2,3])
>
> 6
>
> But why does my first approach not work? __mul__ is a valid method of
> type int. Is there an obvious flaw in my logic?
>
> Thomas Philips
The answer is in your question. __mul__ is a valid method of type int,
but __mul__ on its own is an undefined name. The following code works:
reduce(int.__mul__, [1, 2, 3])
Sam
More information about the Python-list
mailing list