generator-expression- все статьи тега
Генератор как аргумент функции
может ли кто-нибудь объяснить, почему передача генератора в качестве единственного позиционного аргумента функции, похоже, имеет специальные правила? если у нас есть: >>> def f(*args): >>> print "Success!" >>> print args это работает, как ожидалось. >>> f(1, *[2]) Success! (1, 2) Это не работает, как ожидалось. >>> f(*[2], 1) File "<stdin>", line 1 SyntaxError: only named arguments may follow *expression это работает, как ...
выход в списке понимания и генераторных выражений
следующее поведение кажется мне довольно нелогичным (Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] промежуточные значения последней строки на самом деле не всегда None, Они все, что мы send в генератор, эквивалентный (я думаю) в следующий генератор: def f(): for i in range(3): yield (yi ...