← Назад к курсу

Правила именования в Python

В Python существуют общепринятые соглашения по именованию, которые регулируются PEP 8 (Python Enhancement Proposal 8). Разница в регистрах используется для обозначения разных типов сущностей:

📝 Основные стили именования

1. snake_case (змеиный_регистр)

  • Используется для:
    • Имен переменных
    • Имен функций
    • Имен методов
    • Имен модулей
    • Имен пакетов
# Примеры
user_name = "Иван"
calculate_total_price()
is_valid = True
import my_module

2. PascalCase (ВерблюжийРегистр)

  • Используется для:
    • Имен классов
    • Имен исключений
# Примеры
class UserProfile:
    pass

class DatabaseConnectionError(Exception):
    pass

3. UPPER_CASE (ВЕРХНИЙ_РЕГИСТР)

  • Используется для:
    • Констант
# Примеры
MAX_CONNECTIONS = 100
DEFAULT_PORT = 8080
PI = 3.14159

🎯 Детали и особые случаи

Переменные vs Константы

# Обычная переменная (snake_case)
current_temperature = 25.5

# Константа (UPPER_CASE)
MAX_TEMPERATURE = 100.0

Функции vs Классы

# Функция (snake_case)
def calculate_average(numbers):
    return sum(numbers) / len(numbers)

# Класс (PascalCase)
class DataProcessor:
    # Метод класса (snake_case)
    def process_data(self):
        pass

Частные (private) члены класса

class MyClass:
    def __init__(self):
        self.public_var = 10      # публичная переменная
        self._private_var = 20    # "защищенная" (convention)
        self.__mangled_var = 30   # "приватная" (name mangling)
    
    def _private_method(self):    # "защищенный" метод
        pass

⚠️ Важные замечания

  1. Python чувствителен к регистру:
my_var = 10
My_Var = 20  # Это разные переменные!
  1. Соглашения нарушать можно, но не нужно:

    • Код будет работать, но станет менее читаемым
    • Может конфликтовать с инструментами анализа кода
  2. Специальные имена:

# Магические методы (двойные подчеркивания)
__init__()
__str__()

# Системные переменные
__name__
__file__

📊 Сводная таблица

Тип сущности Стиль Пример
Переменная snake_case user_count
Функция snake_case get_user_data()
Метод snake_case calculate_total()
Класс PascalCase DataProcessor
Константа UPPER_CASE MAX_SIZE
Модуль snake_case data_utils.py
Пакет snake_case package_name/

🔧 Рекомендации

  1. Будьте последовательны в выбранном стиле
  2. Используйте осмысленные имена, даже если они длинные
  3. Избегайте однобуквенных имен (кроме счетчиков i, j в циклах)
  4. Не используйте l (L), O (о), I (i) как однобуквенные имена - их легко спутать с цифрами

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