Python — что делает выход (выход)?Python

Программы на Python
Ответить
Anonymous
 Python — что делает выход (выход)?

Сообщение Anonymous »

Начиная с Python 2.5 появилась возможность отправлять(), throw(), close() в генератор. Внутри определенного генератора можно «перехватить» отправленные данные, выполнив что-то вроде:

Код: Выделить всё

def gen():
while True:
x = (yield)
if x == 3:
print('received 3!!')
break
else:
yield x
Я пытаюсь поиграться с чем-то вроде:

Код: Выделить всё

def gen2():
while True:
yield (yield)
Заметил, что это легальный генератор, который что-то делает.
Первое, что я пытаюсь выяснить:

Есть ли хорошее применение такому написанию?

А также, когда вы делаете что-то вроде:

Код: Выделить всё

g = gen2()
next(g)
g.send(10) # output: 10
g.send(2) # output: nothing
g.send(3) # output: 3
g.send(44) # output: nothing
Почему каждая секундная операция «отправка» ничего не делает?

Подробнее здесь: https://stackoverflow.com/questions/458 ... d-yield-do
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»