Форум сайта python.su
14
Обьясните кто-нибудь, что это значит.
Офлайн
857
>>> print(i for i in (1, 2, 3), end='.\n') File "<stdin>", line 1 SyntaxError: Generator expression must be parenthesized if not sole argument >>> print((i for i in (1, 2, 3)), end='.\n') <generator object <genexpr> at 0xb7492504>. >>>
Офлайн
14
Это тройка? У меня оно на двойке вылазило.
А почему надо было так сделать, что генератор обязательно заключать в скобки, причем не обязательно круглые?
Офлайн
857
>>> map(i for i in (1, 2, 3), '') File "<stdin>", line 1 SyntaxError: Generator expression must be parenthesized if not sole argument >>> map((i for i in (1, 2, 3)), '') [] >>>
odnochlenпотому что он не может определить границы генераторного выражения
А почему надо было так сделать, что генератор обязательно заключать в скобки, причем не обязательно круглые?
>>> def f(arg): ... print(arg) ... >>> f(i for i in (1, 2, 3)) <generator object <genexpr> at 0xb75452fc> >>>
>>> def f(arg, *args): ... print(arg, args) ... >>> f(i for i in (1, 2, 3)) <generator object <genexpr> at 0xb7545504> () >>> f(i for i in (1, 2, 3), 1) File "<stdin>", line 1 SyntaxError: Generator expression must be parenthesized if not sole argument >>> f((i for i in (1, 2, 3)), 1) <generator object <genexpr> at 0xb754534c> (1,) >>> f((i for i in (1, 2, 3)), i for i in (1, 2, 3)) File "<stdin>", line 1 SyntaxError: Generator expression must be parenthesized if not sole argument >>> f((i for i in (1, 2, 3)), (i for i in (1, 2, 3))) <generator object <genexpr> at 0xb75452d4> (<generator object <genexpr> at 0xb7545504>,) >>>
Отредактировано py.user.next (Июль 7, 2012 09:06:03)
Офлайн
14
Теперь понятнее стало.
Generator expression must be parenthesized if not sole argument - генераторное выражение должно быть обскоблено, если оно не единственный аргумент.
Хотя, после запятой всегда должно идти зарезервированное слово in?
Отредактировано odnochlen (Июль 7, 2012 10:23:10)
Офлайн
857
odnochlenчего ? перед запятой ?
Хотя, после запятой всегда должно идти зарезервированное слово in?
f(a in b, c) f((i for i in (1, 2, 3)) and a in b, c)
Отредактировано py.user.next (Июль 7, 2012 11:51:16)
Офлайн