PlutoPrint — это лёгкая и удобная библиотека на Python для генерации качественных PDF и изображений напрямую из HTML или XML. Она основана на мощном рендеринг-движке PlutoBook, что делает её идеальной для отчетов, счетов, билетов и визуализаций.
Основные возможности
Поддержка PDF и PNG – можно создавать как статичные изображения, так и печатные документы из
Простота установки и использования — установка через pip install plutoprint; пример для командной строки:
plutoprint input.html output.pdf --size=A4
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍17❤11🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда мы используем модуль random, числа выглядят случайными, но на самом деле они вычисляются по алгоритму. Поэтому такие числа называют псевдослучайными.
Главное:
- Если задать одинаковый seed (зерно), генератор выдаст одинаковую последовательность. Это удобно для тестов и экспериментов — результат можно воспроизвести.
- Алгоритм по умолчанию — Mersenne Twister. Он быстрый и подходит для моделирования, но не годится для безопасности.
- Для генерации паролей, токенов и других защищённых данных нужно использовать модуль secrets, который делает случайность криптографически стойкой.
Просто правило:
- Для экспериментов → random с фиксированным seed.
- Для безопасности → secrets.
Пример работы seed
import random
random.seed(42)
print([random.random() for _ in range(3)])
random.seed(42)
print([random.random() for _ in range(3)]) те же числа
Криптографически безопасные значения
import secrets
print(secrets.token_hex(8))
print(secrets.randbelow(10))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍15🤩6🔥3
Отличный курс для тех, кто хочет разобраться в нейронках с нуля от Андрея Карпати (OpenAI/Tesla).
Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:
Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.
https://github.com/karpathy/nn-zero-to-hero/
@pythonl
Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:
Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.
https://github.com/karpathy/nn-zero-to-hero/
@pythonl
❤24👍10🤩3🔥1
Что это:
Новый инструмент для фильтрации в DRF, который расширяет возможности стандартного
django-filter
. Особенности
- Использует serializer-поля для разбора и валидации (без Django-форм и виджетов)
- Поддержка группировки фильтров для гибкой логики
- Constraint system — проверка взаимозависимостей между параметрами
- Вложенные фильтры (nested filters) для работы со сложными структурами
Последний релиз — v0.6.0 (21 августа 2025)
- Возможность указывать группу по умолчанию для всего
FilterSet
(в том числе глобально) - Поддержка subgroups для более сложных связей между фильтрами
- Новый метод
FilterSet.get_combinator()
для динамического выбора способа объединения фильтров - ⚠️ Breaking change: теперь
Entry
нельзя создавать без указания группы Почему стоит попробовать
Если стандартные фильтры Django REST кажутся ограниченными, rest-filters даёт:
- фильтрацию через сериализаторы,
- сложные сценарии с группировками и вложенностью,
- гибкость и расширяемость.
🔗 Репозиторий: https://github.com/realsuayip/rest-filters
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда при работе с коллекциями в пайтон нужно быстро сгруппировать данные по ключу и при этом не писать громоздкий цикл с проверками. В таких случаях можно использовать модуль итэртулз и функцию группбай. Она позволяет превратить список в словарь с удобной структурой, где каждый ключ сразу содержит все связанные элементы. Это сильно экономит строки кода и делает его чище.
from itertools import groupby
from operator import itemgetter
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
{"category": "B", "value": 40},
]
сортировка обязательна перед groupby
data.sort(key=itemgetter("category"))
grouped = {
key: list(group) for key, group in groupby(data, key=itemgetter("category"))
}
print(grouped)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍9🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет по Python: неожиданное поведение с изменяемыми аргументами по умолчанию
Если в функции задать аргумент по умолчанию как
Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.
Правильный способ — использовать `None` и создавать новый объект внутри функции.
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
Если в функции задать аргумент по умолчанию как
list
или dict
, то этот объект создаётся один раз — при определении функции. Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.
Правильный способ — использовать `None` и создавать новый объект внутри функции.
def bad_append(x, data=[]):
data.append(x)
return data
print(bad_append(1)) # [1]
print(bad_append(2)) # [1, 2] <-- неожиданно!
def good_append(x, data=None):
if data is None:
data = []
data.append(x)
return data
print(good_append(1)) # [1]
print(good_append(2)) # [2]
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
❤20👍13🔥5😱2
🎙️ VibeVoice: Инновационная модель TTS для длинных разговоров
VibeVoice — это передовая система синтеза речи, способная генерировать выразительное аудио для длительных разговоров, включая подкасты. Она решает проблемы традиционных TTS-систем, обеспечивая высокую согласованность голосов и естественное взаимодействие между несколькими спикерами.
🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.
📌 GitHub: https://github.com/microsoft/VibeVoice
@pythonl
VibeVoice — это передовая система синтеза речи, способная генерировать выразительное аудио для длительных разговоров, включая подкасты. Она решает проблемы традиционных TTS-систем, обеспечивая высокую согласованность голосов и естественное взаимодействие между несколькими спикерами.
🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.
📌 GitHub: https://github.com/microsoft/VibeVoice
@pythonl
❤24👍7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Hexora — статический анализ Python-скриптов на вредоносные паттерны
Что это:
- Ищет опасные конструкции в Python-коде: чтение буфера обмена, exec/eval (включая обфускации), подозрительные импорты (pickle, ctypes, marshal), загрузку бинарей, длинные base64/hex-строки и т. п.
- Полезен для аудита зависимостей (supply chain), проверки скриптов из Pastebin/GitHub, triage после инцидентов и ревью пакетов из PyPI.
Быстрый старт:
🔗Github
Что это:
- Ищет опасные конструкции в Python-коде: чтение буфера обмена, exec/eval (включая обфускации), подозрительные импорты (pickle, ctypes, marshal), загрузку бинарей, длинные base64/hex-строки и т. п.
- Полезен для аудита зависимостей (supply chain), проверки скриптов из Pastebin/GitHub, triage после инцидентов и ревью пакетов из PyPI.
Быстрый старт:
pip install hexora # или: uv tool install hexora
hexora --help
# Проверить одиночный файл
hexora audit path/to/script.py
# Проверить каталог (с удобным выводом)
hexora audit --output-format terminal ./resources/test/
# Аудит пакетов из venv (и фильтрация шумных правил)
hexora audit \
--exclude HX5020,HX5030,HX5040,HX5050,HX5060 \
--min-confidence high \
.venv/lib/python3.11/site-packages/
🔗Github
❤15👍11🔥4
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥5👍3
✨ Возможности:
- Объединение и разделение файлов
- Поворот и обрезка страниц
- Перестановка и удаление страниц
- Интуитивный drag-and-drop интерфейс
Полностью опенсорс (GPL-3.0).
Идеален, если нужно быстро подготовить PDF к печати или презентации — без сложных настроек.
📌 GitHub
#PDF #opensource #Linux #devtools
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Многие считают, что list comprehension всегда оптимален. Но при больших объёмах данных связка map + filter может быть быстрее: она выполняется на уровне C и не создаёт лишних промежуточных структур.
Когда нужно одновременно фильтровать и преобразовывать элементы, map + filter часто выигрывает по скорости.
def transform(x):
return x * x
data = range(10_000_000)
# Медленнее: создаём лишние промежуточные объекты
res1 = [transform(x) for x in data if x % 2 == 0]
# Быстрее: map и filter не создают лишних списков
res2 = list(map(transform, filter(lambda x: x % 2 == 0, data)))
print(res1[:5], res2[:5])
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥10❤5😁3
Что такое `pyx`:
- Python-native registry, часть платформы Astral и продвинутый бэкенд для
uv
.- Обеспечивает более быструю, безопасную и GPU-осознанную работу с пакетами (как приватными, так и публичными, включая PyPI и PyTorch).
Почему это важно:
- Следует философии Astral: поддержка open-source, без превращения инструментов в конкурирующие SaaS-продукты.
- Первый шаг к вертикальной интеграции с существующими open-source инструментами.
- Уже в бета-версии с ранними партнёрами — Ramp, Intercom и fal.
Впечатление:
pyx
выглядит как обдуманный, open-source-ориентированный подход к packaging infrastructure, который может сделать разработку Python-экосистемы быстрее и мощнее.https://simonwillison.net/2025/Aug/13/pyx/#atom-tag
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍4🔥3😁3
🚀 Улучшаем взаимодействие с Claude Code
cc-sessions — это инструмент, который оптимизирует работу с Claude Code, устраняя его основные недостатки. Он обеспечивает контроль над процессом программирования, заставляя Claude сначала обсуждать изменения, прежде чем вносить их в код.
🚀Основные моменты:
- Обеспечивает управление состоянием и памятью о задачах.
- Устраняет случайные изменения в коде.
- Сохраняет контекст между сессиями.
- Принуждает к обсуждению перед реализацией изменений.
📌 GitHub: https://github.com/GWUDCAP/cc-sessions
#python
cc-sessions — это инструмент, который оптимизирует работу с Claude Code, устраняя его основные недостатки. Он обеспечивает контроль над процессом программирования, заставляя Claude сначала обсуждать изменения, прежде чем вносить их в код.
🚀Основные моменты:
- Обеспечивает управление состоянием и памятью о задачах.
- Устраняет случайные изменения в коде.
- Сохраняет контекст между сессиями.
- Принуждает к обсуждению перед реализацией изменений.
📌 GitHub: https://github.com/GWUDCAP/cc-sessions
#python
GitHub
GitHub - GWUDCAP/cc-sessions: An opinionated extension set for Claude Code (hooks, subagents, commands, task/git management infrastructure)
An opinionated extension set for Claude Code (hooks, subagents, commands, task/git management infrastructure) - GWUDCAP/cc-sessions
🔥7👍6❤5
This media is not supported in your browser
VIEW IN TELEGRAM
🎬 HomeTube - Удобный загрузчик видео для вашего HomeLab
HomeTube предлагает простой веб-интерфейс для загрузки видео с различных платформ, включая YouTube, с автоматической организацией файлов для медиа-серверов, таких как Plex и Jellyfin. Идеальное решение для интеграции любимых видео в локальный медиаплеер.
🚀Основные моменты:
- 🎯 Загрузка видео в высоком качестве с автоматической организацией
- 📱 Доступ через веб-интерфейс с любого устройства в сети
- 🚫 Поддержка блокировки рекламы и спонсоров
- 🍪 Возможность разблокировки ограниченного контента с помощью cookies
- ⚙️ Поддержка более 1800 платформ
📌 GitHub: https://github.com/EgalitarianMonkey/hometube
@pythonl
#python
HomeTube предлагает простой веб-интерфейс для загрузки видео с различных платформ, включая YouTube, с автоматической организацией файлов для медиа-серверов, таких как Plex и Jellyfin. Идеальное решение для интеграции любимых видео в локальный медиаплеер.
🚀Основные моменты:
- 🎯 Загрузка видео в высоком качестве с автоматической организацией
- 📱 Доступ через веб-интерфейс с любого устройства в сети
- 🚫 Поддержка блокировки рекламы и спонсоров
- 🍪 Возможность разблокировки ограниченного контента с помощью cookies
- ⚙️ Поддержка более 1800 платформ
📌 GitHub: https://github.com/EgalitarianMonkey/hometube
@pythonl
#python
❤11👍5🔥4
🎥 Редактирование видео с Lucy Edit
Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.
🚀 Основные моменты:
- 🏃♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям
📌 GitHub: https://github.com/DecartAI/Lucy-Edit-ComfyUI
#python
Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.
🚀 Основные моменты:
- 🏃♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям
📌 GitHub: https://github.com/DecartAI/Lucy-Edit-ComfyUI
#python
GitHub
GitHub - DecartAI/Lucy-Edit-ComfyUI
Contribute to DecartAI/Lucy-Edit-ComfyUI development by creating an account on GitHub.
❤9
Собрали топ-30 бесплатных курсов для Python-разработчиков 🐍
Эксперты Академии Selectel собрали более 30 онлайн-программ для IT-специалистов с тестами и заданиями для проверки знаний. Среди них вы найдете:
🔹 обучающие подборки по программированию на Go и JavaScript;
🔹 гайды и инструкции для создания собственных pet-проектов на Python, Flask и Django;
🔹 курсы для тех, кто хочет освоить новый навык — Linux или работу с PostgreSQL: в процессе учебы вы получите промокод для практики в панели управления Selectel, а после — сертификат о прохождении.
Курсы доступны в любое время, проходите их в комфортном темпе. А главное — все бесплатные!
Выберите нужную программу и начните обучение прямо сейчас ➡️
Реклама. АО "Селектел". erid:2W5zFJ7KBu2
Эксперты Академии Selectel собрали более 30 онлайн-программ для IT-специалистов с тестами и заданиями для проверки знаний. Среди них вы найдете:
🔹 обучающие подборки по программированию на Go и JavaScript;
🔹 гайды и инструкции для создания собственных pet-проектов на Python, Flask и Django;
🔹 курсы для тех, кто хочет освоить новый навык — Linux или работу с PostgreSQL: в процессе учебы вы получите промокод для практики в панели управления Selectel, а после — сертификат о прохождении.
Курсы доступны в любое время, проходите их в комфортном темпе. А главное — все бесплатные!
Выберите нужную программу и начните обучение прямо сейчас ➡️
Реклама. АО "Селектел". erid:2W5zFJ7KBu2
❤6😁2
This media is not supported in your browser
VIEW IN TELEGRAM
🗣️ RealtimeVoiceChat — живой голосовой чат с ИИ.
RealtimeVoiceChat — это open-source проект, который позволяет общаться с LLM в реальном времени голосом. Он объединяет распознавание речи, LLM и синтез речи в единую систему с минимальной задержкой — около 500 мс при локальной установке.
➡️ Как работает:
1. Запись речи в браузере
2. Передача аудио по WebSocket на сервер
3. Распознавание речи через
4. Ответ от LLM (Ollama, OpenAI и др.)
5. Озвучка ответа через
6. Обратная передача аудио в браузер
7. Поддержка прерываний и динамики через
✨ Особенности:
- Задержка ~500 мс
- Поддержка разных LLM и TTS движков
- Быстрый запуск через Docker Compose
- Чистый веб-интерфейс на Vanilla JS + Web Audio API
✔️ Стек:
- Backend: Python + FastAPI
- Frontend: JS + WebSockets
- ML: transformers, torchaudio, Ollama, Whisper, TTS
- Контейнеризация: Docker
✔️ Требуется CUDA-совместимая видеокарта (для Whisper/TTS) и Docker.
🔥 Отличный проект для тех, кто хочет интегрировать голосовой интерфейс с LLM — например, для ассистентов, чат-ботов, презентаций или UX-экспериментов.
🔜 Репозиторий: https://github.com/KoljaB/RealtimeVoiceChat
🔜 Демо: https://www.youtube.com/watch?v=-1AD4gakCKw
@pythonl
#tts #llm #opensource
RealtimeVoiceChat — это open-source проект, который позволяет общаться с LLM в реальном времени голосом. Он объединяет распознавание речи, LLM и синтез речи в единую систему с минимальной задержкой — около 500 мс при локальной установке.
1. Запись речи в браузере
2. Передача аудио по WebSocket на сервер
3. Распознавание речи через
RealtimeSTT
(на базе Whisper)4. Ответ от LLM (Ollama, OpenAI и др.)
5. Озвучка ответа через
RealtimeTTS
(Coqui XTTSv2, Kokoro и др.)6. Обратная передача аудио в браузер
7. Поддержка прерываний и динамики через
turndetect.py
✨ Особенности:
- Задержка ~500 мс
- Поддержка разных LLM и TTS движков
- Быстрый запуск через Docker Compose
- Чистый веб-интерфейс на Vanilla JS + Web Audio API
- Backend: Python + FastAPI
- Frontend: JS + WebSockets
- ML: transformers, torchaudio, Ollama, Whisper, TTS
- Контейнеризация: Docker
@pythonl
#tts #llm #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤19🔥7😁4👍3
В 2026 во Владимирской области у Yandex Cloud появится новая зона доступности на базе нового дата-центра Яндекса, прямо рядом с уже действующим ЦОД. Мощность — 40+ МВт.
Задержка между зонами <1 мс, канал до 25,6 Тб/с. Для ваших СУБД и бэкендов на Python/Django это значит: запросы летят почти мгновенно, транзакции проходят без подвисаний, а системы бронирований и ритейл работают бесперебойно.
Каналы связи между зонами полностью независимы, отказоустойчивость на высоте.
Задержка между зонами <1 мс, канал до 25,6 Тб/с. Для ваших СУБД и бэкендов на Python/Django это значит: запросы летят почти мгновенно, транзакции проходят без подвисаний, а системы бронирований и ритейл работают бесперебойно.
Каналы связи между зонами полностью независимы, отказоустойчивость на высоте.
Telegram
Техночат
Нейросети постепенно прорастают во все процессы бизнеса – от построения инфраструктуры до обеспечения безопасности клиентских сервисов и приложений. Представители Yandex Cloud на конференции Yandex Scale рассказали, как используют нейросети в своих сервисах…
🔥7❤4👍4😁3
🎹 Nallely - модульная open-source платформа для MIDI и звуковых экспериментов
- Работает на Python, позволяет соединять MIDI, датчики, веб-камеры и другие источники в единую систему.
- Можно генерировать, фильтровать и трансформировать сигналы, направляя их обратно в MIDI или другие приложения.
- Поддерживает live coding, генеративную музыку, мультимедийное искусство и сложную маршрутизацию.
- Устройства (нейроны) работают независимо — их можно комбинировать в разные конфигурации для экспериментов.
- Патчи версионируются через git, можно менять структуру прямо во время работы, даже с телефона.
- В комплекте: нейроны для MIDI, обработки сигналов, удалённой связи и визуализации.
🔗 Подробнее и демо: https://dr-schlange.github.io/nallely-midi/
@pythonl
- Работает на Python, позволяет соединять MIDI, датчики, веб-камеры и другие источники в единую систему.
- Можно генерировать, фильтровать и трансформировать сигналы, направляя их обратно в MIDI или другие приложения.
- Поддерживает live coding, генеративную музыку, мультимедийное искусство и сложную маршрутизацию.
- Устройства (нейроны) работают независимо — их можно комбинировать в разные конфигурации для экспериментов.
- Патчи версионируются через git, можно менять структуру прямо во время работы, даже с телефона.
- В комплекте: нейроны для MIDI, обработки сигналов, удалённой связи и визуализации.
🔗 Подробнее и демо: https://dr-schlange.github.io/nallely-midi/
@pythonl
❤13👍3🔥2
IT_ONE Cup. Code & Analyst — хакатон для аналитиков и разработчиков, где ты узнаешь, как работает IT-команда, и получишь сильный кейс в портфолио. Выбери трек и реши одну из задач:
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.
🏆 Призовой фонд: 900 000 рублей
💻 Формат: онлайн
🗓 Регистрация до 16 октября: https://cnrlink.com/itonecupmsupythonl
Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.
Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.
Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.
Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.
Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupythonl
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.
💻 Формат: онлайн
Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.
Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.
Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.
Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.
Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python трюк: динамическое добавление методов в класс
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
Пример 👇
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
https://www.youtube.com/shorts/64-dqXJZ8RM
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
Пример 👇
class User:
def __init__(self, name):
self.name = name
# Обычный объект
u = User("Alice")
# Функция, которую хотим "подмешать"
def greet(self):
return f"Hello, {self.name}!"
# Вклиниваем метод в класс
User.greet = greet
print(u.greet()) # Hello, Alice!
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
https://www.youtube.com/shorts/64-dqXJZ8RM
🔥20😱9❤6👍5😁1