Я хочу иметь генератор, который может иметь или не иметь ничего, чтобы его получить, и если используется .next()
или аналогичный, он не будет иметь ошибки StopIteration
, если не будет выполнено ни одного из условий для выхода.генератор, который не обязательно дает что-либо
Пример:
def A(iterable):
for x in iterable:
if x == 1:
yield True
Который работает так:
>>> list(A([1,2]))
[True]
>>> A([1]).next()
True
>>> A([2]).next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
Но то, что я хотел бы для A([2]).next()
вернуться в None
.
Скопированный фрагмент кода недостаточно ... – peterh
Или просто используйте отдельные инструкции '' 'yield''' в каждом наборе оператора if/else *. – wwii