Python Ninja | Программирование
6.92K subscribers
1.08K photos
99 videos
918 links
Канал для всех кто хочет освоить или прокачать навыки программирования на Python. Присоединяйся, чтобы стать настоящим Python Ninja!

Связь: @sfoninja
Download Telegram
Методы в Python хранятся на уровне класса, а не экземпляра

Тогда как Python находит метод при вызове x.m()? Правило ICPO:

Сначала Python ищет атрибут в экземпляре (_i_nstance).
Если не найден проверяет класс (_c_lass).
Дальше родительские классы (_p_arent).
В конце object, корневой базовый класс (_o_bject).

Именно поэтому метод можно определить один раз в классе, а использовать через любой экземпляр 🤓

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Укладываемся по удобней 😴

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁93❤‍🔥3
Наследование в Python меняет путь поиска атрибутов

Также известный как «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 👋

✈️ Python Ninja
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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Переприсваивание не равно изменение объекта

Что выведет код? 😎

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Варианты
Anonymous Quiz
46%
A
30%
B
18%
C
5%
D
👍3
Microsoft выкатили вводный мини-курс по созданию AI-агентов

AI-агенты сегодня становятся частью современной разработки, и этот курс помогает разобраться в теме системно

Авторы делают акцент на инженерном подходе: как проектировать поведение агентов, разделять планирование и выполнение, контролировать действия и строить системы, которые можно масштабировать

Хороший вход в тему без лишней воды ⌨️

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Один из самых больших бесплатных курсов по AI Engineering

Авторы собрали 412 уроков и разбили их на 20 этапов от базовой математики до создания AI-агентов и продвинутого промт-инжиниринга

Подарок для тех кто хочет разобраться в современной AI разработке 💃

Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝42
Нашёл клад для тех кто хочет строить AI-системы по-взрослому

Если большинство материалов по AI-агентам заканчиваются на уровне «создали чат-бота за 15 минут», то этот репозиторий идёт заметно дальше

Здесь собраны туториалы по всем ключевым компонентам production уровня: память, RAG, observability, безопасность, multi-agent сценарии, deployment, tool calling и многое другое

Полезен как системный справочник и roadmap по созданию production-ready AI-систем 📝

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Совет по Python: используйте match-case когда условий становится слишком много

В Python 3.10 появилась конструкция сопоставления с образцом (match-case) более читаемая альтернатива длинным if-elif-else.

Она особенно полезна, когда нужно:

• обрабатывать HTTP-статусы
• разбирать команды CLI
• работать с типами событий
• проверять структуры данных
• писать state-machine логику

Почему это удобно:

• код легче читать
• меньше вложенности
• проще поддерживать и расширять
• можно матчить не только значения, но и структуры/list/dict/object patterns

Но если у вас всего 1–2 условия обычный if всё ещё будет проще 🤲

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Совет по Python: itertools.compress() удобная фильтрация по маске

compress() возвращает только те элементы, для которых соответствующее значение в списке selectors равно True

from itertools import compress

letters = 'ABCDEFG'
bools = [True, False, True, True, False]

print(list(compress(letters, bools)))
# ['A', 'C', 'D']


Полезно, когда нужно быстро фильтровать данные по булевой маске 🤝

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4🏆2
Разработчики OpenAI показали как сами используют Codex

Компания выкатила гайд с реальными сценариями использования Codex внутри компании. Не очередная статья из серии «AI ускоряет разработку на 999%», а реальные рабочие сценарии изнутри OpenAI

Как писать промпты для рефакторинга, миграций и поиска багов, какие задачи отдают ИИ во время созвонов и как выжимать из агента максимум пользы

Внутри много практики и идей, которые можно применять уже сегодня

С переводом на русский здесь 👇

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Совет по Python: как писать код с эффективным использованием памяти

Это проблемный код:
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']
}


Вместо того чтобы собирать один большой список в памяти, эта функция выдаёт по одной транзакции за раз, только когда это нужно. Это как готовить блюда только по мере поступления заказов

Проблем с памятью здесь нет 📘

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Как, а главное зачем? 🧃

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11
Нашёл сокровищницу для нвочиков в Python

Удобная шпаргалка, где в одном месте собрали всё, что чаще всего приходится вспоминать: типы данных, операции, строки, списки, словари, методы и база конструкции языка

Хорошая штука, можно держать рядом во время работы, обучения и практики

Забираем в закладки за лайк ❤️

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Ошибка на ровном месте: попытка изменить кортеж

Что выведет код? 📖

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Варианты
Anonymous Quiz
82%
A
6%
B
10%
C
2%
D
Принёс полезное: интерактивный гайд по созданию своего Git

Простой и пошаговый разбор: как устроены коммиты, индексы, деревья, как работает .git под капотом. Идеально чтоб наконец-то понять, что там внутри

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝4
Скрытая логика строковых сравнений

Что выведет код? 😱

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Варианты
Anonymous Quiz
43%
A
18%
B
23%
C
16%
D