En Wed, 07 Mar 2007 12:53:43 -0300, Laurent Pointal <[EMAIL PROTECTED]> escribió:
>>>> f(4,i for i in range(10)) > File "<stdin>", line 1 > SyntaxError: invalid syntax 2.5 has a better error message: py> f(4,i for i in range(10)) File "<stdin>", line 1 SyntaxError: Generator expression must be parenthesized if not sole argument > Why does Python allow generator expression parenthesis to be mixed with > function call parenthesis when there is only one parameter ? Because they are redundant when only one argument is used. sum(i for i in range(10)) looks better than sum((i for i in range(10))) "Beautiful is better than ugly", and "Readability counts." > IMHO this should be forbidden, usage must not be different when there is > only one parameter and when there are more parameters. It's similar to "%d" % 123 vs. "%d" % (123,) """Special cases aren't special enough to break the rules. Although practicality beats purity.""" > User should all times explicitly use () for a generator expression and > [] for a list comprehension expression. For a list comprehension, yes. For a generator, not always. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list