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