и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, что Python иногда подменяет атрибуты класса? Когда Python читает атрибут через объект, он не всегда возвращает то, что лежит в классе. Если у найденного объекта есть метод __get__, Python вызывает его и отдает результат вместо самого атрибута. Функция в классе – это такой объект, поэтому User.greet и u.greet возвращают разные вещи. Первое – функцию, второе – bound method с уже зашитым self. class User: def greet(self): return "hello" u = User() print(type(User.greet)) # print(type(u.greet)) # print(User.greet is u.greet) # False User.greet – просто функция. u.greet – bound method, отдельный объект, который Python создал в момент обращения. В нем уже зашит u как первый аргумент – поэтому self появляется автоматически. Дескриптор – это любой объект с методом __get__. Python вызывает его когда находит такой объект в __dict__ класса: class Readonly: def __get__(self, obj, objtype=None): if obj is None: return self # доступ через класс return 42 # доступ через инстанс class User: score = Readonly() u = User() print(User.score) # print(u.score) # 42 score в User.__dict__ – это объект Readonly. Python видит у него __get__ и вызывает его вместо того чтобы вернуть напрямую. Именно так работают property, classmethod, staticmethod – все они дескрипторы. class User: @classmethod def create(cls): return cls() print(type(User.__dict__["create"])) # print(type(User.create)) # В __dict__ лежит объект classmethod. При обращении через класс срабатывает его __get__ – и возвращается уже bound method с привязанным классом. Функции становятся методами не в момент определения класса, а в момент обращения через инстанс; но механизм один – __get__. В следующий раз – посмотрим на @property. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаКогда Анастасия Ануфрикова решила сменить профессию и пойти в IT, у неё не было технического образования — зато был синдром самозванца. Да и близкие не слишком верили в её затею. Но интерес к профессии и дисциплина оказались сильнее сомнений. Анастасия поступила в IT-академию Lad на курс «Backend-разработка на Django», где она не просто изучала теорию, а погружалась в разработку на практике. 🗣️ «На удивление, само обучение прошло для меня очень легко и невероятно интересно. Хочу выразить огромную благодарность моему ментору Ивану Ашихмину — я считаю, что в Академию можно идти просто ради того, как он преподает. Это высший пилотаж!» 💼 А затем случилось то, о чём она раньше могла только мечтать: после многоэтапного отбора Анастасия получила оффер в Aviasales. Конкурс был огромным — около 1400 человек на место! Сегодня она строит карьеру в одной из самых известных компаний страны, а главное — каждый день занимается тем, что ей действительно нравится. Вот 6 советов, которые она даёт новичкам: 💡 Ставьте на дисциплину, а не мотивацию. Мотивация приходит и уходит, а привычка заниматься каждый день остаётся. Даже если совсем не хочется, посидите над задачей 20 минут — это уже движение вперёд. 💡 Не бойтесь ошибаться и сомневаться. Это нормально — думать, что вы глупый и ничего не можете. Просто проветритесь, отвлекитесь, а потом вернитесь к сложной задаче со свежей головой. Уверяю, вы найдёте решение! 💡 Не слушайте тех, кто в вас не верит. Чужой скепсис не определяет ваше будущее. Проверено. 💡 Сравнивайте себя только с собой вчерашним. Именно так легче увидеть собственный прогресс. 💡 Не делайте акцент на использование ИИ. Вначале вам важно самому понять базу, а уже потом — делегировать что-то нейросетям. 💡 Выбирайте профессию, которая вам действительно интересна, а не только деньги. Обязательно будут периоды, когда захочется всё бросить, но если внутри есть истинный интерес — вы победите. 💙 Мы очень гордимся успехами Анастасии. Подробнее про её путь можно прочитать на сайте. Помните: отсутствие технического образования — не преграда. И нельзя отказываться от мечты ещё до того, как вы попробовали сделать первый шаг!
Открыть канал и посмотреть медиаПривет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 08.06.2026 — Дайджест ⚙️ Вторник, 09.06.2026 — ACTIONS TELEGRAM NOTIFRER и Знаете ли вы, что у объекта нет методов? 🎬 Пятница, 12.06.2026 — Пятничный кинорелакс 🔧 Пятница, 12.06.2026 — Telegram Bot API 10.1: Революция форматирования ⚙️ Суббота, 13.06.2026 — Пример нового форматирования ⏳ Воскресенье, 14.06.2026 — Вышло обновление aiogram 3.29.0 с полной поддержкой Bot API 10.1! 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode
Открыть канал и посмотреть медиаTelegram Bot API 10.1: Революция форматирования Автор: Иван Ашихмин Революция в Telegram Bot API 10.1! Забудьте про ограничения: представлены Rich Messages с блочной вёрсткой как в Notion, нативными таблицами, чек-листами и LaTeX на 32к символов. А для защиты…
Открыть канал и посмотреть медиаВсем привет! «Под прикрытием» (2025) «Под прикрытием» — британская комедия с уклоном в абсурд, где обычный офисный клерк внезапно оказывается в шпионском боевике… которому никто не верит. Скромный Хью мечтает хоть о каком‑то признании, но даже коллеги не запоминают его имя, а жизнь проходит между кулером и скучными отчётами. Случайная встреча и путаница втягивают его в полицейскую операцию под прикрытием, где Хью надо изображать опасного агента и внедриться в преступную группировку. Проблема в том, что он остаётся тем же «невидимым» офисным типом, и его попытки быть крутым шпионом выглядят как смесь любительского театра и провала века. Фильм стебётся над штампами полицейских триллеров и показывает, как человек, к которому никто серьёзно не относился, вдруг получает шанс стать героем — пусть и через череду глупых, но смешных катастроф. Подойдёт, если любите английский юмор, неловкие ситуации и истории про лузера, который случайно попал в жанр «боевик». Приятного просмотра!
Открыть канал и посмотреть медиаTelegram Bot API 10.1: Революция форматирования Автор: Иван Ашихмин Революция в Telegram Bot API 10.1! Забудьте про ограничения: представлены Rich Messages с блочной вёрсткой как в Notion, нативными таблицами, чек-листами и LaTeX на 32к символов. А для защиты чатов завезли Guard Bots с капчами через Mini Apps. Разбираем свежий синтаксический фарш! Читать статью на сайте Читать статью на Хабр Поддержать проект через YooMoney Поддержать проект через Tribute в Telegram Поддержать проект через наш Telegram-бот #BOT_API #HTML #LaTeX #Markdown #Telegram #aiogram #Обновление #новости #форматирование
Открыть канал и посмотреть медиаЗнаете ли вы, что у объекта нет методов? Методы не хранятся в самом объекте – они хранятся в классе. Обычно у инстанса есть свой __dict__, и при создании он пустой. Когда Python читает obj.x, он ищет по цепочке: сначала в obj.__dict__, потом в __dict__ класса, потом выше по наследованию. Методы находятся на втором шаге – поэтому кажется, что они принадлежат объекту, хотя на самом деле нет. class User: role = "viewer" def greet(self): return f"Hello, {self.role}" u = User() print(u.__dict__) # {} — инстанс пустой print("greet" in u.__dict__) # False — метода здесь нет print("role" in User.__dict__) # True — атрибут класса здесь print("greet" in User.__dict__) # True — метод тоже здесь greet и role определены в классе – там они и лежат. Инстанс u создан пустым: u.__dict__ не содержит ничего, пока не присвоить атрибут явно через u.x = .... Из этого следует кое-что интересное: атрибут, записанный напрямую в __dict__ инстанса, перекрывает обычный одноименный атрибут класса. class User: role = "viewer" u = User() print(u.role) # viewer — Python нашел в User.__dict__ u.__dict__["role"] = "admin" print(u.role) # admin — инстанс перекрыл класс del u.__dict__["role"] print(u.role) # viewer — снова из класса Порядок поиска такой: u.__dict__ -> User.__dict__ -> выше по цепочке. Как только нашел – возвращает. Поэтому запись в __dict__ инстанса как бы затмевает атрибут класса, не удаляя его. class BaseUser: active = True class User(BaseUser): role = "viewer" u = User() print(u.active) # True — нашел в BaseUser.__dict__, прошел всю цепочку u.__dict__["active"] = False print(u.active) # False — инстанс перекрыл print(BaseUser.active) # True — BaseUser.__dict__ не тронут Это стандартный механизм – на нем работают instance variables, которые пишутся через self.x = ... в __init__. Каждый раз это просто запись в obj.__dict__. Но это не вся история. Когда Python находит объект в User.__dict__ – он не всегда возвращает его напрямую. Если у найденного объекта есть метод __get__, Python вызывает его. Именно поэтому u.greet и User.greet возвращают разные вещи – об этом поговорим на следующей неделе. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаВсем привет! Ещё в декабре 2024 года я написал GitHub Action для оповещения в Telegram о состоянии workflow — Actions Telegram Notify. Он у меня подключен ко всем проектам и понемногу развивался. Однако не гитхабом единым, как говорится. В академии мы переводим проекты на собственный GitLab, в котором хоть и есть встроенная поддержка оповещений в ТГ, но она очень скомканная, неинформативная, ну и не работающая для нас. В связи с этим представляю версию 3.0.0, в которой реализована поддержка GitLab CI! Экшен сам определяет, в каком окружении запущен, и получает соответствующие данные, после чего единообразно отправляет оповещения в Telegram. Подключайте в своих пайплайнах, это очень удобно! Ссылка скрыта P.S. Только что обнаружил, что за эти ~1.5 года экшен скачали более 20.5 тысяч раз! Считаю это хорошим результатом)
Открыть канал и посмотреть медиаПривет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 01.06.2026 — Дайджест ⚙ Вторник, 02.06.2026 — 🐝 Улей — это не один сервер ⚙ Среда, 03.06.2026 — Знаете ли вы, что float('nan') != float('nan') – True? 🎬 Пятница, 05.06.2026 — Пятничный кинорелакс 🔧 Пятница, 05.06.2026 — Кавай-Фокус 2.8: путь к MVP1 — конструктор таймера 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!