Cовет по Python: не путайте has-a и is-a в ООП
При проектировании классов важно понимать разницу между композицией и наследованием:
Примеры:
Один класс является разновидностью другого класса.
Примеры:
Простое правило:
Если объект содержит что-то → композиция (🥥
✈ Python Ninja
При проектировании классов важно понимать разницу между композицией и наследованием:
has-a композиция. Один объект содержит другой объект или данные внутри себя.class Person:
def __init__(self, name):
self.name = name # Person has-a name
Примеры:
Person has-a nameCar has-a coloris-a наследованиеОдин класс является разновидностью другого класса.
class Employee(Person):
pass # Employee is-a Person
Примеры:
Employee is-a PersonCar is-a VehicleПростое правило:
Если объект содержит что-то → композиция (
has-a). Если объект является разновидностью чего-то → наследование (is-a). Во многих случаях композиция делает код гибче и проще для поддержки Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Cовет по Python: не превращайте тернарный оператор в квест на внимательность
Да, Python позволяет писать такие конструкции. Но чем больше условий в одной строке тем хуже читаемость
Простое правило: если условий 3 и больше лучше перейти на обычный
• comprehensions
• lambda-выражений
•
Короткий код не всегда хороший код🎩
✈ Python Ninja
Да, Python позволяет писать такие конструкции. Но чем больше условий в одной строке тем хуже читаемость
'A' if s >= 90 else 'B' if s >= 80 else 'C' if s >= 70 else 'F'
Простое правило: если условий 3 и больше лучше перейти на обычный
if / elif / else. Тернарный оператор лучше оставить для коротких и понятных случаев:• comprehensions
• lambda-выражений
•
return в одну строкуКороткий код не всегда хороший код
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Бесплатная онлайн книга "Automate the Boring Stuff with Python"
Руководство по использованию Python для автоматизации повседневных задач. Автор предлагает практические примеры, связанные с обработкой файлов, работой с электронными таблицами, веб-автоматизацией и другими прикладными задачами📚
☝️ Ссылка источник
✈️ Python Ninja
Руководство по использованию Python для автоматизации повседневных задач. Автор предлагает практические примеры, связанные с обработкой файлов, работой с электронными таблицами, веб-автоматизацией и другими прикладными задачами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Методы в Python хранятся на уровне класса, а не экземпляра
Тогда как Python находит метод при вызове
Сначала Python ищет атрибут в экземпляре (_i_nstance).
Если не найден проверяет класс (_c_lass).
Дальше родительские классы (_p_arent).
В конце
Именно поэтому метод можно определить один раз в классе, а использовать через любой экземпляр🤓
✈️ Python Ninja
Тогда как Python находит метод при вызове
x.m()? Правило ICPO:Сначала Python ищет атрибут в экземпляре (_i_nstance).
Если не найден проверяет класс (_c_lass).
Дальше родительские классы (_p_arent).
В конце
object, корневой базовый класс (_o_bject).Именно поэтому метод можно определить один раз в классе, а использовать через любой экземпляр
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Наследование в Python меняет путь поиска атрибутов
Также известный как «method resolution order» (MRO):
То есть MRO показывает, в каком порядке Python будет искать методы и атрибуты: сначала в классе потомке, затем в родителях по цепочке, и в конце в базовом👋
✈️ Python Ninja
Также известный как «method resolution order» (MRO):
class Child:
pass
Child.__mro__ # (__main__.Child, object)
class Child(Parent):
pass
Child.__mro__ # (__main__.Child, __main__.Parent, object)
То есть MRO показывает, в каком порядке Python будет искать методы и атрибуты: сначала в классе потомке, затем в родителях по цепочке, и в конце в базовом
object Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Карманный AI-переводчик или полноценная LLM весом всего 440MB
Tencent продолжают продвигать тренд «маленьких, но мощных» моделей
Hy-MT1.5-1.8B-1.25bit это translation LLM, которая после экстремального сжатия весит всего около 440MB, но при этом поддерживает десятки языков и локальный запуск даже на мобильных устройствах
Такие модели показывают, что качественный перевод и серьёзные возможности LLM уже начинают помещаться буквально в кармане
☝️ Ссылка источник
✈️ Python Ninja
Tencent продолжают продвигать тренд «маленьких, но мощных» моделей
Hy-MT1.5-1.8B-1.25bit это translation LLM, которая после экстремального сжатия весит всего около 440MB, но при этом поддерживает десятки языков и локальный запуск даже на мобильных устройствах
Такие модели показывают, что качественный перевод и серьёзные возможности LLM уже начинают помещаться буквально в кармане
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Сохраняйте это золото для изучения LLM
LLM Architecture Gallery это огромная коллекция архитектур современных AI-моделей с визуальными схемами и пояснениями
GPT, Llama, Qwen, DeepSeek, Gemma, Mistral, MoE, attention-механизмы, сравнение архитектур и полезные ресерчи всё собрано в одном месте
☝️ Ссылка источник
✈️ Python Ninja
LLM Architecture Gallery это огромная коллекция архитектур современных AI-моделей с визуальными схемами и пояснениями
GPT, Llama, Qwen, DeepSeek, Gemma, Mistral, MoE, attention-механизмы, сравнение архитектур и полезные ресерчи всё собрано в одном месте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👍3
Microsoft выкатили вводный мини-курс по созданию AI-агентов
AI-агенты сегодня становятся частью современной разработки, и этот курс помогает разобраться в теме системно
Авторы делают акцент на инженерном подходе: как проектировать поведение агентов, разделять планирование и выполнение, контролировать действия и строить системы, которые можно масштабировать
Хороший вход в тему без лишней воды⌨️
☝️ Ссылка источник
✈️ Python Ninja
AI-агенты сегодня становятся частью современной разработки, и этот курс помогает разобраться в теме системно
Авторы делают акцент на инженерном подходе: как проектировать поведение агентов, разделять планирование и выполнение, контролировать действия и строить системы, которые можно масштабировать
Хороший вход в тему без лишней воды
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Один из самых больших бесплатных курсов по AI Engineering
Авторы собрали 412 уроков и разбили их на 20 этапов от базовой математики до создания AI-агентов и продвинутого промт-инжиниринга
Подарок для тех кто хочет разобраться в современной AI разработке💃
☝ Ссылка источник
✈️ Python Ninja
Авторы собрали 412 уроков и разбили их на 20 этапов от базовой математики до создания AI-агентов и продвинутого промт-инжиниринга
Подарок для тех кто хочет разобраться в современной AI разработке
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝4❤2
Нашёл клад для тех кто хочет строить AI-системы по-взрослому
Если большинство материалов по AI-агентам заканчиваются на уровне «создали чат-бота за 15 минут», то этот репозиторий идёт заметно дальше
Здесь собраны туториалы по всем ключевым компонентам production уровня: память, RAG, observability, безопасность, multi-agent сценарии, deployment, tool calling и многое другое
Полезен как системный справочник и roadmap по созданию production-ready AI-систем📝
☝️ Ссылка источник
✈️ Python Ninja
Если большинство материалов по AI-агентам заканчиваются на уровне «создали чат-бота за 15 минут», то этот репозиторий идёт заметно дальше
Здесь собраны туториалы по всем ключевым компонентам production уровня: память, RAG, observability, безопасность, multi-agent сценарии, deployment, tool calling и многое другое
Полезен как системный справочник и roadmap по созданию production-ready AI-систем
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Совет по Python: используйте match-case когда условий становится слишком много
В Python 3.10 появилась конструкция сопоставления с образцом (
Она особенно полезна, когда нужно:
• обрабатывать HTTP-статусы
• разбирать команды CLI
• работать с типами событий
• проверять структуры данных
• писать state-machine логику
Почему это удобно:
• код легче читать
• меньше вложенности
• проще поддерживать и расширять
• можно матчить не только значения, но и структуры/list/dict/object patterns
Но если у вас всего 1–2 условия обычный🤲
✈️ Python Ninja
В Python 3.10 появилась конструкция сопоставления с образцом (
match-case) более читаемая альтернатива длинным if-elif-else.Она особенно полезна, когда нужно:
• обрабатывать HTTP-статусы
• разбирать команды CLI
• работать с типами событий
• проверять структуры данных
• писать state-machine логику
Почему это удобно:
• код легче читать
• меньше вложенности
• проще поддерживать и расширять
• можно матчить не только значения, но и структуры/list/dict/object patterns
Но если у вас всего 1–2 условия обычный
if всё ещё будет проще Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Совет по Python:
Полезно, когда нужно быстро фильтровать данные по булевой маске🤝
✈️ Python Ninja
itertools.compress() удобная фильтрация по маскеcompress() возвращает только те элементы, для которых соответствующее значение в списке selectors равно Truefrom itertools import compress
letters = 'ABCDEFG'
bools = [True, False, True, True, False]
print(list(compress(letters, bools)))
# ['A', 'C', 'D']
Полезно, когда нужно быстро фильтровать данные по булевой маске
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🏆2
Разработчики OpenAI показали как сами используют Codex
Компания выкатила гайд с реальными сценариями использования Codex внутри компании. Не очередная статья из серии «AI ускоряет разработку на 999%», а реальные рабочие сценарии изнутри OpenAI
Как писать промпты для рефакторинга, миграций и поиска багов, какие задачи отдают ИИ во время созвонов и как выжимать из агента максимум пользы
Внутри много практики и идей, которые можно применять уже сегодня
С переводом на русский здесь👇
☝️ Ссылка источник
✈️ Python Ninja
Компания выкатила гайд с реальными сценариями использования Codex внутри компании. Не очередная статья из серии «AI ускоряет разработку на 999%», а реальные рабочие сценарии изнутри OpenAI
Как писать промпты для рефакторинга, миграций и поиска багов, какие задачи отдают ИИ во время созвонов и как выжимать из агента максимум пользы
Внутри много практики и идей, которые можно применять уже сегодня
С переводом на русский здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Совет по Python: как писать код с эффективным использованием памяти
Это проблемный код:
Проблема в том, что такой подход сохраняет ВСЕ обработанные строки в памяти перед тем, как что-либо вернуть. Это как приготовить 10 000 блюд и хранить их все на кухне место быстро закончится
Лучший подход использовать
Вместо того чтобы собирать один большой список в памяти, эта функция выдаёт по одной транзакции за раз, только когда это нужно. Это как готовить блюда только по мере поступления заказов
Проблем с памятью здесь нет📘
✈️ Python Ninja
Это проблемный код:
def generate_transactions_inefficient(df: pd.DataFrame):
transactions = []
for _, row in df.iterrows():
transactions.append({
'user_id': row['user_id'],
'amount': row['amount'],
'transaction_date': row['transaction_date'],
'status': row['status']
})
return transactions
Проблема в том, что такой подход сохраняет ВСЕ обработанные строки в памяти перед тем, как что-либо вернуть. Это как приготовить 10 000 блюд и хранить их все на кухне место быстро закончится
Лучший подход использовать
yield:def generate_transactions_efficient(df: pd.DataFrame):
for _, row in df.iterrows():
yield {
'user_id': row['user_id'],
'amount': row['amount'],
'transaction_date': row['transaction_date'],
'status': row['status']
}
Вместо того чтобы собирать один большой список в памяти, эта функция выдаёт по одной транзакции за раз, только когда это нужно. Это как готовить блюда только по мере поступления заказов
Проблем с памятью здесь нет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2