← Назад к курсу
Правила именования в 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
⚠️ Важные замечания
- Python чувствителен к регистру:
my_var = 10 My_Var = 20 # Это разные переменные!
-
Соглашения нарушать можно, но не нужно:
- Код будет работать, но станет менее читаемым
- Может конфликтовать с инструментами анализа кода
-
Специальные имена:
# Магические методы (двойные подчеркивания) __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/ |
🔧 Рекомендации
- Будьте последовательны в выбранном стиле
- Используйте осмысленные имена, даже если они длинные
- Избегайте однобуквенных имен (кроме счетчиков i, j в циклах)
- Не используйте l (L), O (о), I (i) как однобуквенные имена - их легко спутать с цифрами
Следование этим соглашениям делает ваш код понятным для других Python-разработчиков и облегчает поддержку проекта.