Найти - Пользователи
Полная версия: yield from
Начало » Python для новичков » yield from
1
dima2881
Пытаюсь для себя понять, что такое 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()
Правильно я все понял или ошибаюсь? Есть ли какие-то нюансы?
4kpt_IV
PEP0380
dima2881
4kpt_IV
Я читал это, но если честно не до конца понял все там написанное и по этому задаю вопрос тут.
Не понимаю, что подразумевается под делегацией части действий другому генератору.
4kpt_IV
dima2881
Можете объяснить как работает обычный генератор или короутина?
Xion
dima2881
Пытаюсь для себя понять, что такое yield from. На данный момент пока понял, что это синтаксический сахар для замены
Я понял тоже самое, но там есть еще один ньюанс с .send() см. видео: https://www.youtube.com/watch?v=o5kfO5Fbhmo
4kpt_IV
Xion
Ох и объяснение. Есть презентация Д. Бизли. Там и понятнее и примеры более здравые

P.S. Я написал автору этот вопрос потому, что если он не может понять как работает простой генератор или короутина, то понять как работает yield from пока не удастся…
dima2881
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 это было сложно понять.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB