Elementor Header #8

23. Магические числа

Добро пожаловать на двадцать третий урок по Python! Сегодня мы обсудим, что такое магические числа, почему их использование может быть проблематичным, и как избежать их в вашем коде. Понимание концепции магических чисел и их замена на более понятные элементы кода поможет улучшить читаемость и поддерживаемость вашего программного обеспечения.

Что такое магические числа?

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

Пример магического числа

				
					# Пример кода с магическим числом
def calculate_area(radius):
    return 3.14159 * radius * radius  # 3.14159 — магическое число

				
			

В данном примере число 3.14159 (приближенное значение π) используется напрямую в коде. Это делает код менее читаемым и трудным для понимания, особенно если такое значение используется в нескольких местах.

Проблемы с использованием магических чисел

  • Понимаемость кода: Код с магическими числами может быть труден для понимания, особенно если значение используется в нескольких местах.
  • Трудности при изменении: Если вам нужно изменить значение, вам нужно найти и заменить все его вхождения.
  • Ошибки: Ошибки могут возникнуть, если магическое число используется неверно или несколько раз, и только часть из них была изменена.

Как избежать магических чисел

1. Используйте константы

Создайте константы с понятными именами для чисел, которые имеют особое значение в вашем коде. Это улучшает читаемость и упрощает изменение значений.

				
					# Определение констант
PI = 3.14159

def calculate_area(radius):
    return PI * radius * radius

				
			

Теперь значение PI ясно обозначено и его можно легко изменить в одном месте, если потребуется.

2. Используйте переменные с понятными именами

Если значения не являются константами, создайте переменные с описательными именами.

				
					# Определение переменных
base_salary = 50000
bonus_percentage = 0.10

def calculate_total_salary(salary):
    return salary + (salary * bonus_percentage)

				
			
				
					from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

def get_color_name(color):
    if color == Color.RED:
        return "Red"
    elif color == Color.GREEN:
        return "Green"
    elif color == Color.BLUE:
        return "Blue"

				
			

Перечисления помогают организовать фиксированные наборы значений и делают код более самодокументируемым.

Заключение

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

logo