Зарегистрируйтесь, чтобы продолжить обучение

Магические числа Основы Python

Рассмотрим пример программы, которая выполняет конвертацию валют:

euros_count = 1000
dollars_count = euros_count * 1.25  # 1250.0
rubles_count = dollars_count * 60   # 75000.0

print(rubles_count)

С технической точки зрения — всё работает. Но с точки зрения профессиональной разработки такой код считается плохой практикой.

🤨 В чём проблема?

В выражениях использованы непонятные числа: 1.25 и 60. Что это за значения? Курс валют? Откуда они взялись? Через месяц или год вы, скорее всего, не вспомните, что именно означают эти числа. А если код откроет другой разработчик, он просто не поймёт, откуда всё берётся. Такие числа называются магическими

Магические числа (magic numbers) — это числовые значения, смысл которых не ясен из кода. Они, обычно, используются в математических выражениях напрямую, без переменных с понятными названиями. Чтобы понять их назначение, приходится вникать в контекст или читать дополнительную документацию. Магические числа затрудняют чтение, понимание и поддержку кода.

✅ Как избежать магии

Самый простой способ — вынести такие значения в переменные с понятными именами. Тогда смысл станет очевиден:

dollars_per_euro = 1.25
rubles_per_dollar = 60

euros_count = 1000
dollars_count = euros_count * dollars_per_euro   # 1250.0
rubles_count = dollars_count * rubles_per_dollar # 75000.0

print(rubles_count)

Сами числа никуда не делись, но теперь они записаны в переменные, названия которых однозначно говорят, что это.

💬 Вывод

Магические числа делают код непонятным и трудным для поддержки. Чтобы избежать этой проблемы, нужно заменять такие числа переменными с осмысленными именами. Это делает код более читаемым, особенно в долгосрочной перспективе. Не стоит бояться того, что программа станет чуть длиннее — понятный код всегда важнее компактности.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff