Mixins | Что это и как использовать
В ООП миксины — это инструмент, который позволяет переиспользовать общую функциональность между несколькими, часто несвязанными типами данных. Это шаг в сторону гибкого модульного кода с минимальной связностью похожих объектов.
В отличие от других ЯП (Ruby, Dart и проч.), которые поддерживают этот паттерн явно через специализированный синтаксис, Python полагается на множественное наследование как на механизм для реализации этой концепции.
Представьте, что вы создаете классы
Решение через примеси:
Когда использовать Mixins
1️⃣ Когда нужно переиспользовать функциональность между несвязанными классами
2️⃣ Когда нужно создать модульный и композируемый код
3️⃣ Когда нужно расширить функциональность сторонних библиотек
Когда НЕ стоит использовать Mixins
1️⃣ Когда функциональность специфична для одного класса
2️⃣ Когда создается слишком сложная иерархия наследования
#основы
@zen_of_python
🤓 — Если изучил досконально
В ООП миксины — это инструмент, который позволяет переиспользовать общую функциональность между несколькими, часто несвязанными типами данных. Это шаг в сторону гибкого модульного кода с минимальной связностью похожих объектов.
В отличие от других ЯП (Ruby, Dart и проч.), которые поддерживают этот паттерн явно через специализированный синтаксис, Python полагается на множественное наследование как на механизм для реализации этой концепции.
Представьте, что вы создаете классы
Animal
и Vehicle
с различными форматами данных. Реализация одной и той же функции serialize()
приводит к дублированию кода:
# Плохо: Дублирование кода
class Animal:
def __init__(self, name, species):
self.name = name
self.species = species
def serialize(self) -> dict:
return vars(self)
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def serialize(self) -> dict: # Дублирование!
return vars(self)
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def serialize(self) -> dict: # Дублирование!
return vars(self)
Решение через примеси:
# Миксин обычно предоставляет одну конкретную функцию
class SerializableMixin:
def serialize(self) -> dict:
if hasattr(self, "__slots__"):
return {
name: getattr(self, name)
for name in self.__slots__
}
else:
return vars(self)
# Классы используют mixin без странной иерархии
class Animal:
def __init__(self, name, species):
self.name = name
self.species = species
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Применяем mixin к нужным классам
class SerializableAnimal(Animal, SerializableMixin):
pass
class SerializableVehicle(Vehicle, SerializableMixin):
pass
class SerializablePerson(Person, SerializableMixin):
pass
Когда использовать Mixins
Когда НЕ стоит использовать Mixins
#основы
@zen_of_python
🤓 — Если изучил досконально
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒4🤓3⚡1❤1
Forwarded from MaaS — meme as a service (ex. Представляешь, )
Маск тихо представил Grok Code и сделал его частью Cursor
Ночью xAI тихо выкатили новую модель Grok Code — гибрид на 37B активных параметров, специально обученный под кодинг.
Контекстное окно — внушительные 262K токенов.
До релиза модель пряталась под именем «sonic». Те, кто уже успел попробовать новинку, отмечают: работает быстро и точно, хотя официальных бенчей пока нет.
Самое приятное — попробовать Grok Code можно прямо сейчас в Cursor и Opencode. Причем до 2 сентября это бесплатно.
@your_tech
Ночью xAI тихо выкатили новую модель Grok Code — гибрид на 37B активных параметров, специально обученный под кодинг.
Контекстное окно — внушительные 262K токенов.
До релиза модель пряталась под именем «sonic». Те, кто уже успел попробовать новинку, отмечают: работает быстро и точно, хотя официальных бенчей пока нет.
Самое приятное — попробовать Grok Code можно прямо сейчас в Cursor и Opencode. Причем до 2 сентября это бесплатно.
@your_tech
✍2🗿1
6 способов автоматизировать ревью кода — подборка сервисов
Если вы устали от ручного кода-ревью, в подборке Tproger вы найдете шесть действенных способов автоматизировать этот процесс. Среди тулов выделяется BeeCR, который интегрируется с GitLab. Также представлен Reshift — легковесный JavaScript-плагин, ориентированный на выявление уязвимостей ещё на этапе разработки.
#инструмент
@zen_of_python
Если вы устали от ручного кода-ревью, в подборке Tproger вы найдете шесть действенных способов автоматизировать этот процесс. Среди тулов выделяется BeeCR, который интегрируется с GitLab. Также представлен Reshift — легковесный JavaScript-плагин, ориентированный на выявление уязвимостей ещё на этапе разработки.
#инструмент
@zen_of_python
❤1
Python в 2025 году: исследование Python Software Foundation
Восьмой ежегодный опрос разработчиков Python, проведённый создателями языка и командой PyCharm, собрал более 30 000 ответов.
И вот интересные факты на его базе:
— Python остаётся основным языком для своих пользователей. В отличие от многих других языков, 86 % респондентов используют Python как основной язык программирования;
— Половина сообщества — новички. Интересно, что 50 % опрошенных имеют менее двух лет профессионального опыта в программировании, а 39 % — менее двух лет опыта работы с Python;
— доля респондентов, использующих FastAPI, выросла с 29 до 38%.
— Менеджер пакетов uv становится новым стандартом из-за скорости;
— Использование GPT через Hugging Face Transformers позволяет легко интегрировать ИИ в проекты.
#факт
@zen_of_python
Восьмой ежегодный опрос разработчиков Python, проведённый создателями языка и командой PyCharm, собрал более 30 000 ответов.
И вот интересные факты на его базе:
— Python остаётся основным языком для своих пользователей. В отличие от многих других языков, 86 % респондентов используют Python как основной язык программирования;
— Половина сообщества — новички. Интересно, что 50 % опрошенных имеют менее двух лет профессионального опыта в программировании, а 39 % — менее двух лет опыта работы с Python;
— доля респондентов, использующих FastAPI, выросла с 29 до 38%.
— Менеджер пакетов uv становится новым стандартом из-за скорости;
— Использование GPT через Hugging Face Transformers позволяет легко интегрировать ИИ в проекты.
#факт
@zen_of_python
✍3
Онлайн-студия big tech night
Если вас не будет в Москве в день ивента, подключайтесь к нашей онлайн-студии. Мы подготовили огненную программу, которая отличается от офлайн-активностей:
🔴 Выступления спикеров от компаний-организаторов и других топов в индустрии
🔴 Микс форматов — от дискуссий и интервью до фановых историй из жизни разработчиков
🔴 Интерактивы с комментариями зрителей
Проведём сразу два прямых эфира:
✨ Студия Hard
В формате дискуссий и интервью обсудим сложные темы — управление IT-командой, AI в разработке, запуск проектов на несколько бизнесов.
✨ Студия Soft
Настоящая вечеринка в формате Late Night Show. Будем общаться, шутить и делиться сокровенным — например, обсудим необычные хобби и безумные pet-проекты.
❗️ Можно переключаться между студиями, чтобы поймать все самые интересные темы.
💻 Мы в эфире 12 сентября с 18:00 до 21:00
❤️Зарегистрируйтесь на сайте, чтобы получить ссылку на трансляцию
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Это #партнёрский пост
Если вас не будет в Москве в день ивента, подключайтесь к нашей онлайн-студии. Мы подготовили огненную программу, которая отличается от офлайн-активностей:
🔴 Выступления спикеров от компаний-организаторов и других топов в индустрии
🔴 Микс форматов — от дискуссий и интервью до фановых историй из жизни разработчиков
🔴 Интерактивы с комментариями зрителей
Проведём сразу два прямых эфира:
✨ Студия Hard
В формате дискуссий и интервью обсудим сложные темы — управление IT-командой, AI в разработке, запуск проектов на несколько бизнесов.
✨ Студия Soft
Настоящая вечеринка в формате Late Night Show. Будем общаться, шутить и делиться сокровенным — например, обсудим необычные хобби и безумные pet-проекты.
❗️ Можно переключаться между студиями, чтобы поймать все самые интересные темы.
💻 Мы в эфире 12 сентября с 18:00 до 21:00
❤️Зарегистрируйтесь на сайте, чтобы получить ссылку на трансляцию
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Это #партнёрский пост
❤1
Еще одна схема мошенничества на PyPi: освободившиеся домены
PyPI усиливает защиту аккаунтов от атак через «возрождение» доменов. С июня 2025 года система ежедневно проверяет статус доменов, связанных с адресами электронной почты пользователей. Если домен переходит в период восстановления или удаления, PyPI автоматически отменяет верификацию таких адресов, предотвращая возможность захвата аккаунта через сброс пароля. С начала июня более 1 800 адресов были размечены как ненадежные. Пользователям рекомендуется добавить вторичный адрес с надежного почтового сервиса и включить двухфакторную аутентификацию для повышения безопасности.
#безопасность
@zen_of_python
😈 — Если для мошенников в опенсорсе отдельный котел в аду
PyPI усиливает защиту аккаунтов от атак через «возрождение» доменов. С июня 2025 года система ежедневно проверяет статус доменов, связанных с адресами электронной почты пользователей. Если домен переходит в период восстановления или удаления, PyPI автоматически отменяет верификацию таких адресов, предотвращая возможность захвата аккаунта через сброс пароля. С начала июня более 1 800 адресов были размечены как ненадежные. Пользователям рекомендуется добавить вторичный адрес с надежного почтового сервиса и включить двухфакторную аутентификацию для повышения безопасности.
#безопасность
@zen_of_python
😈 — Если для мошенников в опенсорсе отдельный котел в аду
❤1