170 похожих чатов

Может кто нибудь объяснить почему это так работает?

19 ответов

16 просмотров

Ты удаляешь элементы из списка при каждой итерации по генератору так как идет вызов a.pop Ну а список то у тебя один, удалил все элементы после первого прохода, идет итерация по следующему генератору, он входит в условие if not a(потому что ты все элементы удалил во время прошлой итерации по первому генератору) принтит ended и останавливается

Ilsaf-Ganjiev Автор вопроса
Ilsaf Ganjiev
Да я чет тупанул) Сижу удивляюсь)))

не.. генераторы это действительно не так уж просто так что не стоит удивляться там дальше будут всякие yield from(хотя это еще не очень тяжело воспринимается) а вот .send у генератора - мм..

quantum super position
расскажи что оно делает

елдит значение переданное в сенд

quantum super position
не.. генераторы это действительно не так уж просто...

Я все время путаюсь, что в каком порядке надо вызывать - сенд или Некст

Tishka17
Нет

RESULT = yield from EXPR is equal to _i = iter(EXPR) try: _y = next(_i) except StopIteration as _e: _r = _e.value else: while 1: try: _s = yield _y except GeneratorExit as _e: try: _m = _i.close except AttributeError: pass else: _m() raise _e except BaseException as _e: _x = sys.exc_info() try: _m = _i.throw except AttributeError: raise _e else: try: _y = _m(*_x) except StopIteration as _e: _r = _e.value break else: try: if _s is None: _y = next(_i) else: _y = _i.send(_s) except StopIteration as _e: _r = _e.value break RESULT = _r

quantum super position
расскажи что оно делает

есть хороший плейлист на эту тему https://www.youtube.com/playlist?list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8

quantum super position
RESULT = yield from EXPR is equal to _i = iter(EX...

Ну тут надо разбираться что за частные случаи

quantum super position
RESULT = yield from EXPR is equal to _i = iter(EX...

какая интересная конструкция, чет не пойму скрытый смысл try: _m = _i.close except AttributeError: pass else: _m()

🥥 Coco 🥥
какая интересная конструкция, чет не пойму скрытый...

нуу ты знаешь как else работает в этой конструкции?

Tishka17
Вызывает close если есть

А почему нельзя getattr сделать или dict проверить?

Pablo Escobar
А почему нельзя getattr сделать или dict проверить...

dict проверять плохая идея, вдруг getattr переопределен, например. А getattr() не используют почему, хз, может для перфы: лишний вызов функции. Или просто вопрос стиля

Dmitry Konovalov
dict проверять плохая идея, вдруг getattr переопре...

А че если a.b сделать, это не то же, что getattr(a, "b")?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта