При документировании функции Python я считаю более питоничным сказать:
def Foo(i):
"""i: An interable containing…"""
...а не...
def Foo(i):
"""i: A list of …"""
Когда i
действительно не нужно быть списком
. (Foo
с удовольствием будет работать с множеством
, кортежем
и т.д.) Проблема в генераторах. Генераторы обычно допускают только 1 итерацию. Большинство функций нормально работают с генераторами или итерациями, которые допускают только один проход, но некоторые - нет.
Для тех функций, которые не могут принимать генераторы/вещи, которые можно итерировать только один раз, есть ли четкий, последовательный термин Python, чтобы сказать "вещь, которую можно итерировать более одного раза"?
В глоссарии Python для iterable и iterator, кажется, есть определение "один раз, но может быть и больше, если вам повезет".