Всем привет!
Розыгрышу уже неделя — за это время в нём приняли участие 110 человек. Спасибо каждому, кто подключился.
Пора подробнее рассказать о призах и о том, как они будут распределяться.
Что разыгрываем:
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Одежда будет изготавливаться после завершения конкурса — по размерам, которые укажут победители.
И небольшой спойлер 👀
Нам уже есть что показать: ниже — фото толстовки на нашем авторе, макет обложки блокнота и 11-й приз, который до этого момента оставался секретным.
Розыгрышу уже неделя — за это время в нём приняли участие 110 человек. Спасибо каждому, кто подключился.
Пора подробнее рассказать о призах и о том, как они будут распределяться.
Что разыгрываем:
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Одежда будет изготавливаться после завершения конкурса — по размерам, которые укажут победители.
И небольшой спойлер 👀
Нам уже есть что показать: ниже — фото толстовки на нашем авторе, макет обложки блокнота и 11-й приз, который до этого момента оставался секретным.
🔥14 3⚡1❤1👍1🦄1
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 22.12.2025 — Дайджест
🐍 Вторник, 23.12.2025 — 1. ty: революция в тайп-чекинге. 2. Знаете ли вы, что при множественном наследовании метод вызывается не из того класса, откуда ожидается?
⚙ Четверг, 25.12.2025 — GitLab: Основы написания Pipeline 1/3
🎬 Пятница, 26.12.2025 — Пятничный кинорелакс
🎰 Суббота, 27.12.2025 — Розыгрышу уже неделя!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 22.12.2025 — Дайджест
🐍 Вторник, 23.12.2025 — 1. ty: революция в тайп-чекинге. 2. Знаете ли вы, что при множественном наследовании метод вызывается не из того класса, откуда ожидается?
⚙ Четверг, 25.12.2025 — GitLab: Основы написания Pipeline 1/3
🎬 Пятница, 26.12.2025 — Пятничный кинорелакс
🎰 Суббота, 27.12.2025 — Розыгрышу уже неделя!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥8❤1👍1
GitLab: Основы написания Pipeline 2/3
Автор: Иван Ашихмин
Вторая из трёх статья, посвящённая продолжению разбора конфигурирования файла
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #docker #github #gitlab #pipeline #ci_cd #stage #devops #job #ci #кэш #if #trigger #артефакты
Автор: Иван Ашихмин
Вторая из трёх статья, посвящённая продолжению разбора конфигурирования файла
.gitlab-ci.ymlЧитать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #docker #github #gitlab #pipeline #ci_cd #stage #devops #job #ci #кэш #if #trigger #артефакты
🔥5⚡1👌1
Всем привет!
С конца года многие подводят итоги — и мы решили не отставать.
Мы подготовили краткий обзор наших годовых цифр: чистые показатели по каналу и сайту за прошедшие 12 месяцев:
С конца года многие подводят итоги — и мы решили не отставать.
Мы подготовили краткий обзор наших годовых цифр: чистые показатели по каналу и сайту за прошедшие 12 месяцев:
🔥12❤4🦄4
Знаете ли вы, как Microsoft Azure упал на 8 часов из-за 29 февраля, которого не существует?
29 февраля 2012 года облако Microsoft Azure легло на 8+ часов. Сертификаты для виртуальных машин создавались с датой истечения "текущая дата + 1 год", а 29 февраля 2012 плюс год дает 29 февраля 2013. Такой даты не существует, потому что 2013 год не високосный.
Система пыталась создать сертификат с невалидной датой, падала с ошибкой. Агент в виртуалке не мог стартовать, хост ждал 25 минут, не получал ответа, решал что сервер умер, переносил виртуалку на другой сервер – та же проблема повторялась снова, каскадом по всем серверам кластера.
Через 75 минут система решила что проблема в железе и отключила автоматическое восстановление – так Azure начал падать по всему миру.
Microsoft отключил управление сервисами глобально в 18:55 PST 28 февраля, первый раз в истории Azure. Клиенты не могли деплоить, обновлять и масштабировать приложения. Не упавшие приложения продолжали работать, но часть виртуалок была недоступна.
Баг нашли в 18:38, фикс накатили к 05:23 следующего утра. Azure вернулся в строй для большинства кластеров.
Но это было ненадолго: в 7 кластерах система была в процессе обновления когда случился тот же баг с високосным годом. Microsoft решил откатиться на старую версию с фиксом. Протестировали на одном из серверов, все выглядело нормально – накатили сразу на все сервера в этих 7 кластерах. И забыли проверить сеть.
В пакете обновления оказался новый сетевой плагин, несовместимый со старой версией. Все виртуалки в этих кластерах потеряли сеть, включая те что работали нормально. В этих кластерах крутились Access Control Service и Service Bus, от которых зависело множество других сервисов.
Окончательно все починили только к 02:15 ночи 1 марта.
После окончательной починки, Microsoft выдал всем клиентам Azure Compute кредит на 33% от стоимости за весь месяц, даже тем кого не затронуло.
Это стало одним из самых громких отключений в истории облачных сервисов – баг в одной строке кода с датами положил всю клиентскую инфраструктуру. Так что в Новом Году желаем вам не повторять судьбу Microsoft и помнить про время!
Код на салфетке x Кусочки кода
29 февраля 2012 года облако Microsoft Azure легло на 8+ часов. Сертификаты для виртуальных машин создавались с датой истечения "текущая дата + 1 год", а 29 февраля 2012 плюс год дает 29 февраля 2013. Такой даты не существует, потому что 2013 год не високосный.
Система пыталась создать сертификат с невалидной датой, падала с ошибкой. Агент в виртуалке не мог стартовать, хост ждал 25 минут, не получал ответа, решал что сервер умер, переносил виртуалку на другой сервер – та же проблема повторялась снова, каскадом по всем серверам кластера.
Через 75 минут система решила что проблема в железе и отключила автоматическое восстановление – так Azure начал падать по всему миру.
Microsoft отключил управление сервисами глобально в 18:55 PST 28 февраля, первый раз в истории Azure. Клиенты не могли деплоить, обновлять и масштабировать приложения. Не упавшие приложения продолжали работать, но часть виртуалок была недоступна.
Баг нашли в 18:38, фикс накатили к 05:23 следующего утра. Azure вернулся в строй для большинства кластеров.
Но это было ненадолго: в 7 кластерах система была в процессе обновления когда случился тот же баг с високосным годом. Microsoft решил откатиться на старую версию с фиксом. Протестировали на одном из серверов, все выглядело нормально – накатили сразу на все сервера в этих 7 кластерах. И забыли проверить сеть.
В пакете обновления оказался новый сетевой плагин, несовместимый со старой версией. Все виртуалки в этих кластерах потеряли сеть, включая те что работали нормально. В этих кластерах крутились Access Control Service и Service Bus, от которых зависело множество других сервисов.
Окончательно все починили только к 02:15 ночи 1 марта.
После окончательной починки, Microsoft выдал всем клиентам Azure Compute кредит на 33% от стоимости за весь месяц, даже тем кого не затронуло.
Это стало одним из самых громких отключений в истории облачных сервисов – баг в одной строке кода с датами положил всю клиентскую инфраструктуру. Так что в Новом Году желаем вам не повторять судьбу Microsoft и помнить про время!
Код на салфетке x Кусочки кода
🔥14😱1🤣1
С наступающим новым годом!
Вот и подходит к концу очередной год. Год был, скажем так, насыщенным... В нём были как хорошие моменты, так и плохие и много, много неожиданных. Но, год вот-вот закончится и самое время зарядиться позитивными мыслями на предстоящий 26-й год!
Этот год для канала вышел вполне неплохим (хотя мог бы быть и лучше!):
- Число подписчиков за год удвоилось! Цель на будущий год - превзойти этот показатель и набрать 4-5 тысяч!
- Статьи выходили практически без пропусков в течение всего года по четвергам, а иногда и в другие дни, если был на то повод. Постараемся держать планку и дальше! Также, воспользуюсь моментом и скажу, что мы будем рады новым авторам!
- Сайт в течение года претерпевал изменения. Обновился внешний вид, он стал, как мне кажется, вполне неплохим, хоть и не без косяков. Однако, у меня всё ещё есть цель кардинальной переделки из "сайт-блог" в полноценный Content Hub...
Были в этом году и проекты. Часть Open Source, а часть закрытые:
- Taigram - Telegram-бот для оповещений из системы управления проектами Taiga. Одно из самых полезных приложений, поскольку пользуемся им регулярно, однако, код требует переработки и оптимизации.
- ReVu - Self-Hosted ревьюер Pull Request с помощью ИИ. Проект получился интересным, но он ещё не закончен.
- Napkin Random Bot - Бот для проведения розыгрышей. Именно в нём вы принимаете участие в нашем новогоднем розыгрыше =). Также как и Taigram, он требует доработки и улучшений, но он уже вполне рабочий.
- SmetApp - Тот самый проект, в который я набирал стажёров для участия. Мы его начали, но забуксовали из-за того, что я не смог уделять ему достаточно времени, а также, потому, что у нас нет фронтендера. С самого начала нового года растормошу всех и продолжим разработку!
Хочу поблагодарить тех, кто радует вас контентом на канале и сайте:
- Сергея, автора рубрики "Кусочки кода", который, вроде бы, не пропустил ни одного вторника! Подписывайтесь на его одноимённый канал!
- Эльшада, автора воскресной рубрики (у которой почему-то всё ещё нет названия!), в которой он периодически рассказывает о работе с ИИ и других интересных вещах с которыми ему приходится сталкиваться как СТО. Также подписывайтесь на его канал "Мозг в данных".
- Евгения, который пишет для вас статьи на сайте и развивает свой проект.
Поздравление от Эльшада:
Поздравление от Евгения:
Хочу пожелать всем хорошо отдохнуть в новогодние праздники и набраться сил на весь предстоящий год. Мыслите позитивно и тогда неудачи будут просто небольшой преградой к успеху. Пробуйте новое, изучайте и развивайтесь!
Пусть те, кто ищут работу найдут её без трудностей, а те, кто только учатся будут схватывать всё "на лету".
Успехов в новом 2026-м году!
Расскажите, как прошёл ваш год и какие планы на грядущий?
Вот и подходит к концу очередной год. Год был, скажем так, насыщенным... В нём были как хорошие моменты, так и плохие и много, много неожиданных. Но, год вот-вот закончится и самое время зарядиться позитивными мыслями на предстоящий 26-й год!
Этот год для канала вышел вполне неплохим (хотя мог бы быть и лучше!):
- Число подписчиков за год удвоилось! Цель на будущий год - превзойти этот показатель и набрать 4-5 тысяч!
- Статьи выходили практически без пропусков в течение всего года по четвергам, а иногда и в другие дни, если был на то повод. Постараемся держать планку и дальше! Также, воспользуюсь моментом и скажу, что мы будем рады новым авторам!
- Сайт в течение года претерпевал изменения. Обновился внешний вид, он стал, как мне кажется, вполне неплохим, хоть и не без косяков. Однако, у меня всё ещё есть цель кардинальной переделки из "сайт-блог" в полноценный Content Hub...
Были в этом году и проекты. Часть Open Source, а часть закрытые:
- Taigram - Telegram-бот для оповещений из системы управления проектами Taiga. Одно из самых полезных приложений, поскольку пользуемся им регулярно, однако, код требует переработки и оптимизации.
- ReVu - Self-Hosted ревьюер Pull Request с помощью ИИ. Проект получился интересным, но он ещё не закончен.
- Napkin Random Bot - Бот для проведения розыгрышей. Именно в нём вы принимаете участие в нашем новогоднем розыгрыше =). Также как и Taigram, он требует доработки и улучшений, но он уже вполне рабочий.
- SmetApp - Тот самый проект, в который я набирал стажёров для участия. Мы его начали, но забуксовали из-за того, что я не смог уделять ему достаточно времени, а также, потому, что у нас нет фронтендера. С самого начала нового года растормошу всех и продолжим разработку!
Хочу поблагодарить тех, кто радует вас контентом на канале и сайте:
- Сергея, автора рубрики "Кусочки кода", который, вроде бы, не пропустил ни одного вторника! Подписывайтесь на его одноимённый канал!
- Эльшада, автора воскресной рубрики (у которой почему-то всё ещё нет названия!), в которой он периодически рассказывает о работе с ИИ и других интересных вещах с которыми ему приходится сталкиваться как СТО. Также подписывайтесь на его канал "Мозг в данных".
- Евгения, который пишет для вас статьи на сайте и развивает свой проект.
Поздравление от Эльшада:
С наступающим 2026🎄
Желаю, чтобы в 2026-м восстание машин снова отложили!🤖 🥂 Пусть ваши модели будут умными и послушными, а аптайм серверов будет длиннее, чем список покупок к новогоднему столу (Ну конечно же 100%). Пусть ИИ берет на себя всю рутину, а вы - только премии. Держите сервера в холоде, а ключи шифрования - ближе к сердцу.🤗 🤗
Поздравление от Евгения:
Дорогие подписчики, гости канала, а также команда «Код на салфетке» — поздравляю всех с наступающим Новым 2026 годом! В новом году Kawai-Focus переедет на новый стек: он станет современнее, удобнее и визуально ещё приятнее. Желаю каждому, чтобы в 2026-м исполнились самые заветные мечты, а также чтобы год принёс рост, интересные задачи и успехи в IT-карьере.
Хочу пожелать всем хорошо отдохнуть в новогодние праздники и набраться сил на весь предстоящий год. Мыслите позитивно и тогда неудачи будут просто небольшой преградой к успеху. Пробуйте новое, изучайте и развивайтесь!
Пусть те, кто ищут работу найдут её без трудностей, а те, кто только учатся будут схватывать всё "на лету".
Успехов в новом 2026-м году!
Расскажите, как прошёл ваш год и какие планы на грядущий?
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥16❤7⚡6👍2
Telegram Bot API 9.3: Революция в ИИ-чатах
Автор: Иван Ашихмин
Telegram представил обновление Bot API 9.3. Подробнее в статье...
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Telegram #Новости #aiogram #bot_api #обновление #темы #подарки
Автор: Иван Ашихмин
Telegram представил обновление Bot API 9.3. Подробнее в статье...
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Telegram #Новости #aiogram #bot_api #обновление #темы #подарки
🔥9❤2⚡2👍1
Код на салфетке
Telegram Bot API 9.3: Революция в ИИ-чатах Автор: Иван Ашихмин Telegram представил обновление Bot API 9.3. Подробнее в статье... Читать статью на сайте Читать статью на Хабр Поддержать проект через YooMoney Поддержать проект через Tribute в Telegram Поддержать…
Вышло обновление aiogram 3.24.0!
Добавлена полная поддержка Bot API 9.3.
Список изменений:
https://docs.aiogram.dev/en/latest/changelog.html
Добавлена полная поддержка Bot API 9.3.
Список изменений:
https://docs.aiogram.dev/en/latest/changelog.html
🔥8⚡2
Приветствую!
«Живая сталь» (2011)
Если хочется чего-то тёплого, драйвового и немного олдскульного, «Живая сталь» — идеальный выбор для вечернего просмотра. В будущем привычный бокс заменили бои огромных боевых роботов, а люди теперь ставят на железных гигантов, а не на живых бойцов. На этом фоне бывший боксёр Чарли Кентон пытается выживать, таская по ярмаркам и подпольным аренам своих списанных железяк.
Неожиданно в его жизнь возвращается сын Макс, и вместе они находят старого тренировочного робота по имени Атом, который вроде бы не предназначен для больших побед. На самом деле фильм не только про бои, а про то, как два чужих друг другу человека заново учатся быть семьёй и верить в себя.
«Живая сталь» — кино, которое одинаково хорошо работает и как зрелищный робот-файтинг, и как эмоциональная история про отцов и детей. Отличный вариант, если хочется мотивации, динамики и фильма, после которого остаётся приятное послевкусие.
«Живая сталь» (2011)
Если хочется чего-то тёплого, драйвового и немного олдскульного, «Живая сталь» — идеальный выбор для вечернего просмотра. В будущем привычный бокс заменили бои огромных боевых роботов, а люди теперь ставят на железных гигантов, а не на живых бойцов. На этом фоне бывший боксёр Чарли Кентон пытается выживать, таская по ярмаркам и подпольным аренам своих списанных железяк.
Неожиданно в его жизнь возвращается сын Макс, и вместе они находят старого тренировочного робота по имени Атом, который вроде бы не предназначен для больших побед. На самом деле фильм не только про бои, а про то, как два чужих друг другу человека заново учатся быть семьёй и верить в себя.
«Живая сталь» — кино, которое одинаково хорошо работает и как зрелищный робот-файтинг, и как эмоциональная история про отцов и детей. Отличный вариант, если хочется мотивации, динамики и фильма, после которого остаётся приятное послевкусие.
🔥8⚡5
Всем привет!
Осталась всего неделя до окончания розыгрыша! уже скоро определятся 11 счастливчиков!
Самое время принять участие и позвать друзей!
https://t.me/press_any_button/1384
Осталась всего неделя до окончания розыгрыша! уже скоро определятся 11 счастливчиков!
Самое время принять участие и позвать друзей!
https://t.me/press_any_button/1384
❤4🔥3😱2⚡1
Гайд по первоначальной настройке VPS
Полностью обновлена статья:
- Улучшено форматирование.
- Добавлено много пояснений.
- Добавлены новые блоки.
Статья стала комплекснее и полезнее.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#linux #vps #debian #ubuntu #гайды #настройка_сервера #ssh
Полностью обновлена статья:
- Улучшено форматирование.
- Добавлено много пояснений.
- Добавлены новые блоки.
Статья стала комплекснее и полезнее.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#linux #vps #debian #ubuntu #гайды #настройка_сервера #ssh
🔥17
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 29.12.2025 — Дайджест и GitLab: Основы написания Pipeline 2/3
🐍 Вторник, 30.12.2025 — Итоги года и Знаете ли вы, как Microsoft Azure упал на 8 часов из-за 29 февраля, которого не существует?
🎊 Среда, 31.12.2025 — Поздравления
⚙ Четверг, 01.01.2026 — Telegram Bot API 9.3: Революция в ИИ-чатах
🎬 Пятница, 02.01.2026 — Пятничный кинорелакс
🍀 Суббота, 03.01.2026 — Новогодний розыгрыш и Гайд по первоначальной настройке VPS
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 29.12.2025 — Дайджест и GitLab: Основы написания Pipeline 2/3
🐍 Вторник, 30.12.2025 — Итоги года и Знаете ли вы, как Microsoft Azure упал на 8 часов из-за 29 февраля, которого не существует?
🎊 Среда, 31.12.2025 — Поздравления
⚙ Четверг, 01.01.2026 — Telegram Bot API 9.3: Революция в ИИ-чатах
🎬 Пятница, 02.01.2026 — Пятничный кинорелакс
🍀 Суббота, 03.01.2026 — Новогодний розыгрыш и Гайд по первоначальной настройке VPS
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥9
Знаете ли вы, что генераторы помнят где остановились между вызовами?
Пишете генератор с локальными переменными, вызываете
Простой пример – генератор считает и помнит счетчик:
Каждый
Еще интереснее с несколькими переменными и сложным состоянием:
Обе переменные
Проверим, что состояние действительно сохраняется внутри объекта:
Словарь
А вот пример где генератор обрабатывает файл порциями и помнит позицию:
Переменная
Как это работает под капотом? Python создает специальный объект генератора с полями
Генераторы сохраняют полное состояние выполнения между вызовами через замороженный stack frame. Это позволяет писать итераторы которые помнят где остановились, обрабатывать бесконечные последовательности, держать открытые ресурсы между вызовами. Но – если генератор держит открытый файл или соединение, не забывайте вызывать
Код на салфетке x Кусочки кода
Пишете генератор с локальными переменными, вызываете
next(), потом через час снова next() – а он продолжает с того же места, будто и не останавливался. Все переменные на месте, счетчики не сбросились, состояние сохранилось. Это работает благодаря тому, что yield не просто возвращает значение, а замораживает весь стек функции: локальные переменные, позицию выполнения – все.Простой пример – генератор считает и помнит счетчик:
def counter():
count = 0
while True:
count += 1
yield count
gen = counter()
print(next(gen)) # 1
print(next(gen)) # 2
# Сходили за чаем, вернулись
print(next(gen)) # 3 - помнит где остановился
Каждый
next() продолжает с того места где yield остановился. Переменная count не исчезает между вызовами – она заморожена внутри генератора.Еще интереснее с несколькими переменными и сложным состоянием:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2
# 2_days_later.jpg
print(next(fib)) # 3 - обе переменные a и b сохранились
print(next(fib)) # 5
Обе переменные
a и b остаются в памяти между вызовами. Генератор не пересоздается каждый раз, он просто продолжает с замороженной точки.Проверим, что состояние действительно сохраняется внутри объекта:
def stateful_gen():
state = {'calls': 0, 'sum': 0}
while True:
value = yield state['sum']
state['calls'] += 1
state['sum'] += value
gen = stateful_gen()
next(gen) # Инициализация
print(gen.send(10)) # 10
print(gen.send(20)) # 30
print(gen.send(5)) # 35
# state живет внутри генератора между вызовами
Словарь
state существует в памяти генератора постоянно. Это не просто локальная переменная функции – это часть состояния генератора, которое Python сохраняет в специальной структуре.А вот пример где генератор обрабатывает файл порциями и помнит позицию:
def read_chunks(filename, chunk_size=1024):
with open(filename, 'r') as f:
position = 0
while True:
chunk = f.read(chunk_size)
if not chunk:
break
position += len(chunk)
yield f"Read {len(chunk)} bytes, total: {position}"
# Создаем тестовый файл
with open('test.txt', 'w') as f:
f.write('x' * 5000)
reader = read_chunks('test.txt', 1000)
print(next(reader)) # Read 1000 bytes, total: 1000
print(next(reader)) # Read 1000 bytes, total: 2000
# Делаем другие задачи...
print(next(reader)) # Read 1000 bytes, total: 3000
# position не сбросился, файловый дескриптор жив
Переменная
position и открытый файл живут между вызовами. Генератор держит весь контекст выполнения включая file handle.Как это работает под капотом? Python создает специальный объект генератора с полями
gi_frame (stack frame), gi_code (байткод), gi_yieldfrom (для yield from); все локальные переменные хранятся в gi_frame.f_locals. А когда вызываем next(), Python восстанавливает stack frame и продолжает выполнение с инструкции после yield.Генераторы сохраняют полное состояние выполнения между вызовами через замороженный stack frame. Это позволяет писать итераторы которые помнят где остановились, обрабатывать бесконечные последовательности, держать открытые ресурсы между вызовами. Но – если генератор держит открытый файл или соединение, не забывайте вызывать
gen.close() для cleanup.Код на салфетке x Кусочки кода
🔥13❤1👍1
173 человека. 11 призов. 3 дня.
Статистика на вашей стороне, друзья. Шансы выиграть неприлично высокие 🔥
Если вы ждали знака свыше, чтобы испытать удачу — это он. Результаты уже совсем скоро, так что не тяните!
Прыгай сюда 👉 https://t.me/press_any_button/1384
И другу перешли, пусть тоже попробует!
Статистика на вашей стороне, друзья. Шансы выиграть неприлично высокие 🔥
Если вы ждали знака свыше, чтобы испытать удачу — это он. Результаты уже совсем скоро, так что не тяните!
Прыгай сюда 👉 https://t.me/press_any_button/1384
И другу перешли, пусть тоже попробует!
🔥7😱3
Всем привет!
На сайте небольшое, но важное обновление: мы объединяем комментарии!
Раньше обсуждения на сайте и в Telegram-канале жили разными жизнями. К тому же, чтобы написать на сайте, нужно было регистрироваться, а это лишнее время.
Теперь всё работает через виджет Telegram.
В чём плюсы для вас:
✅ Одна дискуссия: комментарии под статьей на сайте и постом в канале теперь синхронизированы.
✅ Никаких лишних регистраций: чтобы написать на сайте, достаточно просто залогиниться через Telegram.
Теперь обсуждать новости стало намного проще и удобнее. Заходите проверить!
Пост на сайте
Как вам изменение? 👇
На сайте небольшое, но важное обновление: мы объединяем комментарии!
Раньше обсуждения на сайте и в Telegram-канале жили разными жизнями. К тому же, чтобы написать на сайте, нужно было регистрироваться, а это лишнее время.
Теперь всё работает через виджет Telegram.
В чём плюсы для вас:
✅ Одна дискуссия: комментарии под статьей на сайте и постом в канале теперь синхронизированы.
✅ Никаких лишних регистраций: чтобы написать на сайте, достаточно просто залогиниться через Telegram.
Теперь обсуждать новости стало намного проще и удобнее. Заходите проверить!
Пост на сайте
Как вам изменение? 👇
🔥6⚡3👍1