Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2016 14:15:34

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

yield from

Пытаюсь для себя понять, что такое yield from. На данный момент пока понял, что это синтаксический сахар для замены

def generator2():
    for i in range(10):
        yield i
def generator3():
    for j in range(10, 20):
        yield j
def generator():
    for i in generator2():
        yield i
    for j in generator3():
        yield j
на
def generator():
    yield from generator2()
    yield from generator3()
Правильно я все понял или ошибаюсь? Есть ли какие-то нюансы?

Отредактировано dima2881 (Янв. 29, 2016 14:18:25)

Офлайн

#2 Янв. 29, 2016 14:18:27

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

yield from

Офлайн

#3 Янв. 29, 2016 14:24:06

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

yield from

4kpt_IV
Я читал это, но если честно не до конца понял все там написанное и по этому задаю вопрос тут.
Не понимаю, что подразумевается под делегацией части действий другому генератору.

Офлайн

#4 Янв. 29, 2016 14:28:19

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

yield from

dima2881
Можете объяснить как работает обычный генератор или короутина?

Офлайн

#5 Янв. 29, 2016 18:36:48

Xion
Зарегистрирован: 2016-01-17
Сообщения: 21
Репутация: +  0  -
Профиль  

yield from

dima2881
Пытаюсь для себя понять, что такое yield from. На данный момент пока понял, что это синтаксический сахар для замены
Я понял тоже самое, но там есть еще один ньюанс с .send() см. видео: https://www.youtube.com/watch?v=o5kfO5Fbhmo

Офлайн

#6 Янв. 29, 2016 19:19:21

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

yield from

Xion
Ох и объяснение. Есть презентация Д. Бизли. Там и понятнее и примеры более здравые

P.S. Я написал автору этот вопрос потому, что если он не может понять как работает простой генератор или короутина, то понять как работает yield from пока не удастся…

Отредактировано 4kpt_IV (Янв. 29, 2016 19:35:12)

Офлайн

#7 Янв. 30, 2016 18:45:23

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

yield from

4kpt_IV
Я понимаю как работает генератор и сопрограмма. В принципе ответ на свой вопрос нашёл на stackoverflow
http://stackoverflow.com/questions/9708902/in-practice-what-are-the-main-uses-for-the-new-yield-from-syntax-in-python-3 там с примерами показано, что делает yield from. Из сухого pep это было сложно понять.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version