a = b = 1 just syntactic sugar?
Ed Avis
ed at membled.com
Fri Jun 6 19:33:07 EDT 2003
mwilson at the-wire.com (Mel Wilson) writes:
>> lambda x: print 'value:', x
>
> j = map (lambda x: print 'value:', x, some_list)
>
> What is the print statement supposed to print? And since
>print doesn't return anything (not even None), what happens
>to j?
Well, you can answer this by writing the equivalent code with a named
function.
def f(x):
print 'value:', x
j = map(f, some_list)
Python seems to put in a default return value of None, so j becomes a
list of None elements. The behaviour of an anonymous function should
be the same as that of a named function.
If you mean that the syntax is problematic, because the commas could
belong to 'print' or to the list, it's a fair point. And I know that
Python developers are keen to keep the syntax simple (and my complaint
is mostly semantic). Still, I think that parenthesizing where
necessary would not be unreasonable.
--
Ed Avis <ed at membled.com>
More information about the Python-list
mailing list