в соответствии с ответом на этот вопрос , yield break в C # эквивалентен return в python. в нормальном случае «возврат» действительно останавливает генератор. Но если ваша функция ничего не делает, кроме возврата, вы получите None, а не пустой итератор, который возвращается с помощью yield break в C #
def generate_nothing():
return
for i in generate_nothing():
print i
, вы получите TypeError: объект 'NoneType' не повторяется.но если я добавлю никогда не запускать yield до return, эта функция вернет то, что я ожидал.
def generate_nothing():
if False: yield None
return
если работает, но кажется подключенным. У кого есть идея получше?
спасибо,