← Назад к вопросам

В чем разница между Python 3.10 и 3.11?

1.0 Junior🔥 111 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Различия между Python 3.10 и 3.11

Python 3.11, выпущенный в октябре 2022 года, принес множество улучшений производительности и удобства разработки по сравнению с Python 3.10 (выпущенным в октябре 2021 года). Это была одна из самых значительных версий в истории Python с точки зрения оптимизации.

Производительность

Самое главное достижение Python 3.11 — значительное улучшение скорости выполнения кода. По официальным бенчмаркам, Python 3.11 выполняется на 25% быстрее в среднем по сравнению с Python 3.10. Это было достигнуто благодаря:

  • Optimized Bytecode: новая система компиляции Python кода в байт-код
  • Inlined function calls: встраивание вызовов функций для избежания overhead
  • Lazy import: отложенная загрузка модулей

Pattern Matching

Python 3.10 уже представил синтаксис match-case, но Python 3.11 улучшил и расширил его возможности:

# Пример из 3.10, улучшено в 3.11
match value:
    case 1 | 2 | 3:
        print("Малое число")
    case int() if value > 100:
        print("Большое число")
    case [x, y]:
        print(f"Кортеж: {x}, {y}")

Exception Groups и обработка ошибок

Python 3.11 вводит ExceptionGroup — новый способ группировки нескольких исключений, который особенно полезен при асинхронном программировании:

# Python 3.11
try:
    ...
except ExceptionGroup as eg:
    for exc in eg.exceptions:
        print(f"Ошибка: {type(exc).__name__}")

Это становится критичным при работе с asyncio и параллельными операциями.

Улучшения в типизации

Self type — новый специальный тип для аннотаций методов, возвращающих экземпляр класса:

from typing import Self

class Builder:
    def add_config(self) -> Self:
        return self

Async компоненты

Python 3.11 улучшил работу с asyncio:

  • TaskGroup для управления группами задач
  • Лучше обработка отмены операций (CancelledError)
  • Улучшенная отладка асинхронного кода

Другие улучшения

  • Tomllib: встроенный парсер TOML файлов (больше не нужна сторонняя библиотека)
  • Removals: удаление устаревших API, которые были deprecated в 3.9-3.10
  • cpython improvements: лучшая работа с памятью и GC

Миграция с 3.10 на 3.11

Переход обычно безболезненный для большинства приложений. Основные моменты:

  • Проверьте совместимость всех зависимостей через pip install --upgrade
  • Запустите ваши тесты (покрытие должно быть высоким)
  • Профилируйте приложение для выявления неожиданного поведения
# Проверка версии
import sys
if sys.version_info >= (3, 11):
    # Используем новые возможности 3.11
    from tomllib import loads
else:
    # Fallback для старых версий
    import tomli as tomllib

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

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