Веб-версияОткрыть в Telegram

ПостНе нарушайте принцип единственной ответственности

18 сентября 2026
P
Python Portal
Фотография
нажмите — покажем
Не нарушайте принцип единственной ответственности Функция должна делать одну вещь, делать её хорошо и только её. Эта функция делает слишком много: def calculate_final_total( price: float, quantity: int, discount_rate: float, tax_rate: float ) -> float: # Расчёт промежуточной суммы subtotal = price * quantity # Применение скидки discounted_amount = subtotal * (1 - discount_rate) # Расчёт налога final_total = discounted_amount * (1 + tax_rate) return final_total Проблема здесь в том, что расчёт промежуточной суммы, скидки и налога объединён в одну функцию. Любое изменение одного из этапов может повлиять на весь расчёт. Лучше разбить логику на небольшие специализированные функции: def calculate_subtotal(price: float, quantity: int) -> float: return price * quantity def apply_discount(subtotal: float, discount: float) -> float: return subtotal * (1 - discount) def calculate_tax(amount: float, tax_rate: float) -> float: return amount * (1 + tax_rate) Так намного лучше. Небольшие функции с одной задачей проще покрывать модульными тестами, потому что у них меньше зависимостей и требуется меньше моков. Кроме того, изолированные компоненты проще переиспользовать в разных частях приложения или конвейера, не подтягивая лишние зависимости. Поэтому держите функции простыми и сфокусированными. Одна функция — одна ответственность. 👉 @PythonPortal
29 · 3.5K ·

Рядом в ленте

PPython PortalПока все заставляли мушку работать, чуваки решили дать ей отдохнуть. Вот что из этого получилось. 👉 @PythonPortalPPython PortalПравильный способ обучения такой: Нужно просто решать задачи и делать проекты. Именно такой подход сделали для одной из лучших книг по основам статистики — кста
это сообщение
PPython PortalНебольшой факт про Python. Оператор := называют «моржом» из-за того, что символы напоминают глаза и бивни моржа. Он появился в Python 3.8 и позволяет одновременPPython PortalОдно из главных правил GROUP BY в SQL. Если в SELECT есть столбец без агрегатной функции, он должен либо входить в GROUP BY, либо однозначно определяться сгрупп

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем