a = b = 1 just syntactic sugar?
ed at membled.com
Sat Jun 7 13:12:01 CEST 2003
Sean Legassick <sean at datamage.net> writes:
>> def f:
>> print 'hello'
>> x = f
>>f is an expression, yet it 'contains' a statement.
>f might well be an expression, but surely the 'def f:' is a statement
>with an accompanying suite. It's a kind of assignment statement.
Yes... what we are talking about here, of course, is purely syntax.
Semantically there doesn't seem much difference between defining f
that contains a print statement, and defining an anonymous function
that has the same. If a clear and simple syntax can be worked out to
let expressions appear in lambda-defined functions, just as they can
in ordinary functions, there doesn't seem to be any other reason to
prohibit it. I think that the rule of 'anything that fits on one
line' is such a simple rule; just as simple as 'any expression, but
not a statement' and more powerful.
Ed Avis <ed at membled.com>
More information about the Python-list