Python 3.13: Ускорение на максимум! Все новые возможности в одном видео!

В данном видео рассмотрим топовые фишки и возможности Python 3.13. Версию вносит возможность отключения GIL, что делает потоки Python намного быстрее.

Также был внедрен экспериментальный JIT компилятор, который сильно повлияет на скорость языка в дальнейшем. В Python 3.13 добавлены новые аннотации, новые возможности для работы с дженериками (обобщениями) и много других топовых фишек.

https://www.perplexity.ai

промт – Сделай обзор на текст, выдели основные пункты, предложиварианты заголовков текста, предложи варианты картинок иллюстраций, задай 10 контрольных вопросов к тексту

Обзор основных пунктов Python 3.13

Ключевые улучшения:

  1. Улучшенные исключения и сообщения об ошибках
  2. Новые возможности для дженериков
  3. Обновленный интерактивный режим (REPL)
  4. Возможность отключения GIL (Global Interpreter Lock)
  5. Экспериментальная поддержка JIT-компиляции
  6. Поддержка разработки для iOS и Android
  7. Удаление устаревших модулей и оптимизация существующих

Варианты заголовков:

  • “Python 3.13: Революция в производительности и удобстве использования”
  • “Новая эра Python: Что нас ждет в версии 3.13”
  • “Python 3.13: От улучшенных исключений до отключения GIL”

Предложения по иллюстрациям:

  1. Инфографика, сравнивающая скорость выполнения кода с GIL и без него
  2. Скриншот нового REPL с подсветкой синтаксиса
  3. Диаграмма, показывающая улучшения в обработке исключений
  4. Иконки iOS и Android рядом с логотипом Python
  5. Визуализация работы JIT-компилятора в Python

Контрольные вопросы:

  1. Какие улучшения внесены в обработку исключений в Python 3.13?
  2. Что нового появилось в работе с дженериками?
  3. Какие изменения произошли в интерактивном режиме (REPL) Python?
  4. Как можно отключить GIL в Python 3.13 и какие это дает преимущества?
  5. Что такое JIT-компиляция и как она влияет на производительность Python?
  6. Какие шаги предприняты для поддержки разработки на iOS и Android?
  7. Какие модули были удалены из Python 3.13?
  8. Какие оптимизации были внесены в существующие модули?
  9. Стоит ли сразу переходить на Python 3.13 для производственных проектов?
  10. Какой примерный прирост производительности можно ожидать при использовании новых функций Python 3.13?

https://giga.chat

промт – нарисуй Скриншот нового REPL с подсветкой синтаксиса

https://giga.chat/link/gcshEGwRYp

Расшифровка видео

Поиск по видео
Почему Python 3.13 вас удивит?
0:00
это обновление Python пожалуй Одно из
0:01
самых важных обновлений которые
0:03
когда-либо были оно даёт огромный
0:06
бустроймаркет
0:25
на CSS нежели Вот это но какое было моё
0:28
удивление когда я учил обновление понял
0:31
что наконец-то это свершилось И нет Пато
0:33
не переписали на CSS а добавили опцию
0:35
отключения л ещё полно других фишек как
0:37
вам такое когда я убедился что не сплю я
0:39
пошёл изучать тонну информации на Ютюбе
0:41
на различных сайтах форумах и конечно же
0:43
на странице официальной документации я
0:45
изучил просто тонну контента и собрал
0:47
всё самое необходимое внутрь одного
0:48
видео по сути всё что вам нужно – это
0:50
лишь посмотреть данный ролик до конца и
0:52
в итоге вам не нужно будет тратить много
0:54
времени чтобы изучать эту гору
0:55
информации потому что всё это я сделал
0:57
уже за вас я никогда не мог подумать что
0:59
доживу того момента когда в Python на
1:01
полном серьёзе выпит жил и начнут
1:03
внедрять жит компилятор это очень
1:04
большое улучшение потому что это может
1:06
изменить Python до неузнаваемости если
1:08
сейчас говорят что Python – Это
1:09
медленный язык то через несколько лет он
1:11
вполне реально будет работать так что
1:13
никому и не снилось правда помимо
1:14
улучшений тут есть несколько очень
1:16
опасных подводных камней о которых я
1:18
расскажу в процессе видео также кроме
1:20
всего этого я покажу примеры как это
1:21
обновление влияет на скорость Как можно
1:23
самому протестировать жил установить
1:25
новую версию Python ещё полно других
1:27
фишек Ну и конечно же я отвечу на самые
1:29
важные вопросы который у вас 100%
1:31
появится Итак первое что захотят многие
Как установить новый Python 3.13?
1:33
сделать – это установить сам Python для
1:35
этого у нас есть пару способов Итак ищем
1:37
Python и нажимаем сюда далее выбираем
1:39
новую версию и потом Можем всё это
1:41
скачать Однако есть более крутой способ
1:43
потому что здесь мы перезаписывать
1:45
текущий Python А в Linux даже могут быть
1:47
проблемы с ссылками Поэтому чтобы это
1:48
решить Я буду использовать docker Итак
1:51
пишем здесь Python выбираем данный Image
1:53
и потом листаем ниже здесь есть таги Я
1:55
использовал такой г Однако чтобы
1:57
отключить jl нужен другой способ так
2:00
изначально вводим docker Pool пишем
2:01
Python далее двоеточия и наш тег то есть
2:03
используем первый у меня он уже есть
2:05
Поэтому получаем просто хэш Итак В итоге
2:08
вот тот самый Image также у меня есть
2:09
другой У вас же скорее всего будет
2:11
просто 313 Итак В итоге для запуска
2:13
пишем docker Run Дале Flag it сама Image
2:17
потом Shell В итоге вводим Python вот та
2:19
самая изолированная версия и первая
2:21
фишка которую я хочу показать – это
Исключения стали еще лучше и понятней
2:22
исключение Итак В итоге были улучшения
2:25
над ошибками первый тип – это если у нас
2:27
файл называется Random мы делаем импорт
2:29
Random что может вызвать циклический
2:31
импорт об этом кстати было видео на
2:32
канале но в обнове У нас есть более
2:34
подробная ошибка Если мы вводим импорт с
2:36
таким же названием то получаем понятную
2:38
ошибку а не то что было раньше также
2:40
следующие улучшение если мы вызываем то
2:42
Чего нет в модуле то получаем тоже
2:43
понятную ошибку которая уже максимально
2:45
Прямо говорит часто бывает такое что мне
2:47
пишут ВЛС и кидают тбек с просьбой
2:50
помочь но там в самой ошибке всё прямо и
2:52
написано просто копируем и вставляем
2:54
сюда в итоге получаем Ту самую причину
2:56
более того раньше передавать Не тот-то
2:58
аргумент оно бы сказала что у вас просто
2:59
просто нет Max spit в обнове оно не
3:01
только говорит что такого нет но и даёт
3:03
исправление а точнее пытается это
Ключи только для чтения с аннотацией ReadOnly
3:05
сделать далее Также добавили очень
3:06
крутую аннотацию которая Лично мне не
3:08
хватало можно использовать Type adct и
3:10
указать что title у нас ron то есть его
3:12
можно читать но нельзя перезаписывать
3:14
Итак давайте всё это по тестим Итак
3:16
давайте сделаем MP File и вставим код
3:19
изначально у нас нет ron потому что это
3:21
Python версия 312 далее сделаем docker
3:23
файл я буду использовать этот самый
3:25
образ далее нужен P скопие MP внутри
3:28
контейнера и запустим Давайте даже
3:30
поставим задержку для теста Итак делаем
3:32
Build и в итоге оно ушло в ожидание Итак
3:35
я зайду в образ и Давайте проверим всё
3:36
это на статике вот тот самый mpie
3:38
вставляем такой код используем новую
3:40
версию и запускаем для анализа mpie В
3:42
итоге получаем Ту самую ошибку на title
3:44
потому что он readonly Итак проще говоря
3:46
что я сейчас сделал если мы используем
3:47
данный код тогда уже выйдет полноценно
3:49
Python 313 если мы напишем данную строку
3:52
то всё будет нормально если напишем
3:53
данную строчку то получим ошибку vde то
3:55
есть сам Soft будет работать о на
3:57
текущей строчке будет преду ждение проще
4:00
говоря как вот здесь вот то есть есть
4:02
предупреждение Однако при запуске мы
4:04
получаем нормальный результат и всё так
4:05
и должно быть потому что это проверка на
4:07
статике оно ожидает что программист сам
4:09
это исправит далее очень крутая штука с
Новые фишки с дженериками в Python 3.13
4:10
дженериками это вам 100% понравится Итак
4:13
давайте вставим код изначально это My
4:15
list с типом Т потом создаём ч это будет
4:18
список с типом Т то есть либо всё инты
4:21
либо р далее Также принимаем т от всего
4:23
класса то есть не может быть такого что
4:25
здесь STR А здесь int должен быть один
4:27
тип В итоге создаём int то есть вместо Т
4:30
поставляем тип данных с целыми числами
4:32
далее добавляем единицу Однако если
4:34
добавить строку то получаем ошибку
4:35
Давайте заменим на int В итоге всё
4:37
работает также Давайте использовать
4:39
данную строчку для докер файла Итак
4:41
сохраняем далее выходим и делаем docker
4:43
Build В итоге сейчас по плану всё упадёт
4:45
и вот та самая ошибка потому что нож
4:47
дала int то есть сам тип Т А есть те
4:49
кусок кода где у нас строка также
4:51
Давайте покажу ещё одну топовую штуку
4:53
вот сейчас мы вводим int напрямую Бывает
4:55
такое что класс должен быть изначально
4:56
strr либо же изначально только int
4:58
именно это у нас есть в обнове Итак
5:00
заменяем всё это на обычный лист то есть
5:02
данных скобочек уже нет нужно просто
5:04
зайти сюда и написать напрямую in оно
5:06
сейчас говорит о том что это ошибка
5:08
синтаксиса оно доступно в данной версии
5:10
Python Итак В итоге выведу код для
5:11
удобства далее вызываем docker Build и
5:13
сейчас опять всё упадёт Только уже на
5:15
данной строчке потому что здесь STR мы
5:18
ожидаем int кстати в моём привод канале
5:20
было отдельное видео на тему дженериков
5:21
Python 312 поэтому Пользуясь случаем
Топовое обновление в курсе ООП
5:23
Напоминаю о своём приват канале курсе ап
5:26
сейчас идёт этап обновы если в текущем
5:28
курсе есть тако риал который очень
5:30
глубоко рассматриваю п включая все
5:32
концепции и технологии то в обнове курса
5:34
будет ещё одна глава о паттернах
5:35
проектирования там есть уже Седьмая
5:37
глава про паттерны также будет ещё одна
5:39
а потом я также сделаю девятую и десятую
5:41
главы уже про антипаттерны поэтому это
5:43
полный курс поп я постоянно покупаю
5:45
разные книги материалы изучаю эту тему
5:47
всё глубже и глубже и добавляю всё это в
5:48
виде обновлений курса также и с приват
5:50
каналом я публикую отдельные статьи
5:52
технологии делаю отдельные видео для
5:54
привата которых нет на Ютюбе это парси
5:56
инсайтов различные фишки по Python и
5:57
потихоньку делаю мини курсы и по сути
5:59
покупая лишь один раз вы получаете
6:01
вечный доступ я буду делать обновы как и
6:03
в курсе о так и в Приват канале и все
6:05
эти обновы вы уже получаете бесплатно
6:07
также в курсе есть много видео примеро с
6:09
кодом есть домашне задания которые я
6:11
лично проверяю Также можно задавать
6:12
вопросы мне в LS либо в нашем чате в
6:15
этот раз я хочу набрать 30 человек до
6:16
обновы курса потому что после обновы
6:18
будет очень много нового контента и
6:20
каждый кто успеет получает обнову
6:22
бесплатно Поэтому если форма заявками на
6:23
сайте ещё активно то вы можете
6:25
записаться прямо сейчас далее очень
Весь мир перепишут на новом Python REPL
6:27
мощная штука и опять же даже если вы
6:29
сейчас пишете на c+ Plus на C на Go на R
6:31
на Java и так далее после данной фишки
6:33
вы 100% перейдёте на Python я даже не
6:35
успею досчитать до пяти Как у вас уже
6:37
будет установлен Python и открыта книжка
6:39
по его изучению Итак давайте же я вам
6:41
всё это покажу для начала открываем rle
6:43
это интерактивный режим то есть мы можем
6:44
вводить код и всё это запускать Итак
6:46
первое что изменилось это та самая
6:48
подсветка синтаксиса правда не полная
6:50
если вам нужно Вы можете сделать вот так
6:51
вот передать Python Colors и сдать ноль
6:54
в итоге получите такой же результат Итак
6:55
если мы скопирую данный код попробуем
6:57
вставить его P 312 то получим такой
6:59
результат то есть Оно даже не может его
7:00
нормально отформатировать если мы
7:02
вставим всё это внутрь нового Python то
7:04
получаем нормальный результат наконец-то
7:05
в reple можно вставлять многострочный
7:07
код это вам не чать gpt Если вы вставили
7:09
многострочный код нажимаете вверх то
7:11
получаете вот такое В итоге вам нужно
7:12
каждую строчку заново вставлять здесь же
7:14
мы нажимаем вверх и получаем полный блок
7:16
более того можно всё это редактировать
7:17
то есть зайти сюда поставить двойки и
7:20
потом нажать Enter и всё это будет
7:21
работать но это Полная ерунда по
7:23
сравнению со следующей фишкой если мы
7:24
здесь напишем Clear то получим ошибку
7:26
если напишем уже в новой версии то оно
7:28
всё очищает Ну а далее идёт просто
7:30
SkyNet Давайте введём Exit для того
7:32
чтобы это сработало нужно вызвать это
7:34
как функцию Однако что здесь если мы
7:35
введём Exit оно сработает даже без
7:37
скобок Однако если я веду вот так вот то
7:39
не тут-то было Если Кто пользуется rle
7:42
Напишите об этом в комментариях потому
7:43
что дальше идёт Просто разнос если мы
7:45
делаем функцию нажимаем enter то нужно
7:47
вручную вставить Tab здесь же просто
7:48
новые технологии пишем тест нажимаем
7:50
Enter и оно само поставило отступы
7:52
кстати забавный момент если напишу вот
7:54
так вот то всё работает так же это
7:56
работает и здесь Однако при запуске Я
7:57
получаю ошибку
8:00
также появились подсказки нажимаем A
8:02
потом Tab и выбираем нужный нам
8:03
результат здесь же я нажимаю также Tab
8:05
Хотя оно уже не динамическое Здесь всё
8:07
более красивая однако я не знаю кто
8:08
пользуется rle и тот же PT Python
8:10
намного функциональные Также можно
8:12
использовать Help здесь это функция А
8:14
здесь можно написать просто Help либо
8:16
нажать F1 В итоге вводим скажем Day Time
8:19
получаем имя описание и также доку это
8:21
возможно полезно на каких-то локальных
8:23
серва ках где нет даже инета но всё же
8:25
лишним не будет дальше самое время
Как работает GIL в Python 3.13?
8:27
показать тот самый долгожданный л так
8:29
Многие знают что именно ill блокирует
8:31
наши потоки по сути те же самые цепью
8:33
Bound операции выполняются как один
8:36
поток давайте это проверим Итак у нас
8:37
есть Single trad здесь такая функция она
8:40
запускается в одном потоке то есть
8:42
изначально идёт информация ол включен Он
8:44
или выключен дальше выполняется операция
8:47
потом замер времени также есть файл с
8:49
мультитрейд Здесь всё тоже самое только
8:51
много потоков Итак изначально запускаю
8:53
Single trad далее мульт В итоге разница
8:56
невелика Давайте запустим мульти
8:57
процессинг Здесь всё работает намного
8:59
быст быстрее потоки должны быть ещё
9:00
быстрее но из-за л это не так так вот
9:03
наконец-то можно его отключить правда
9:04
сейчас чтобы отключить л нужно собирать
9:06
всё это из исходников Итак В итоге у нас
9:09
есть три файла и для начала запускаем
9:11
силт далее тред и в итоге также нужен
9:14
мульти процен В итоге разница примерно
9:16
такая Однако на многих сайтах пишут что
9:18
это ещё не финальный результат то есть
9:20
вот Вот таких окружения могут быть
9:22
какие-то недочёты таким же образом можно
Как JIT влияет на скорость Python 3.13?
9:24
использовать экспериментальную версию Т
9:25
однако я это делать не буду Вы можете
9:27
проверить Т уже сами потому что на
9:29
момент его достаточно трудно тестить
9:30
Однако само внедрение G в Python – Это
9:33
хороший звоночек потому что открывается
9:34
множество оптимизаций в дальнейшем на
9:36
данный момент это в особых случаях 15-20
9:38
про скорости А в обычных сценариях
9:40
примерно 5% Однако улучшая жит можно
9:42
будет делать скорость быстрее и быстрее
9:44
например на том же Хабр была статья где
9:46
это описано по сути он даёт генерации в
9:48
100 раз быстрее и ускоряет сам код Это
9:50
позволяет сохранить простой синтаксис
9:52
языка и в то же время сделать его
9:54
быстрее и по сути некоторые операции оно
9:56
компилирует в реальный машинный код
9:58
который исполняется напрямую на
9:59
процессоре а не в виртуальной машине
10:01
Python или если быть точнее то внутри
10:03
интерпретатором же позволяет выйти за
10:05
его пределы Также идёт поддержка iOS и
Поддержка Python для iOS и Android
10:07
Android главная цель сделать так чтобы
10:09
Python 3 был запущен на Android то есть
10:10
чтобы это была поддерживаемая платформа
10:12
Потому что сейчас для разработки на
10:14
Android или IOS используют другие языки
10:16
если нужно использовать именно Python то
10:19
такой возможности особо-то и нет И в
10:20
итоге они уходят на другой язык
10:22
разработчики Python пытаются сделал так
10:23
чтобы была поддержка на Android и iOS
10:26
также были добавлены вот эти три уровня
10:27
более того в прошлых версиях Python
Какие библиотеки были удалены из Python 3.13?
10:29
начиная с 311 было полно ненужных
10:31
модулей которые вроде бы уже не нужны Но
10:33
всё же они были в Python в этой версии
10:35
всё было удалено это Вот такой список
10:37
модулей также были улучшены другие
Какие модули были улучшены и оптимизированы?
10:39
модули Вы можете зайти по этой ссылке и
10:41
посчитать самостоятельно потому что их
10:43
здесь очень много поэтому разработчики
10:44
Python поработали очень продуктивно
10:46
более того были также оптимизации
10:48
например тот же тайпинг загружается на
10:49
треть быстрее также ускорено другие
10:51
функции и также 100% буду спрашивать
Стоит ли переходить на Python3.13?
10:54
стоит ли переходить сразу на новый
10:55
Python и отвечаю что переходить не стоит
10:57
нужно подождать минимум полгода вы
10:59
можете скачать его и потестить изучить
11:01
новые технологии но не использовать в
11:02
своих проектах потому что во-первых
11:04
нужно переписать все либо под новую
11:06
версию Python а для этого нужно время
11:08
это плюс новые баги и так далее
11:09
Представьте что будет jill и т нужно все
11:12
проекты переписать под отсутствие л
11:14
Потому что много проектов используют
11:15
обычные потоки Если вы запустите всё это
11:17
л то скорее всего у вас всё упадёт
11:19
потому что без л совершенно другое
11:21
Управление потоками То есть вы получаете
11:23
огромную скорость но нужно следить за
11:25
памятью Поэтому нужно подождать пока всё
11:26
перепишут под новый л а точнее его
11:28
отсутствие Тогда скорее всего многие
11:30
проекты станут намного быстрее Однако
11:32
Возможно это будет дольше чем полгода
11:34
поэтому ставьте новую версию на свой
11:36
страхи и риск и опять же Давайте напишем
11:37
комментарий под видео и поставим туда
11:39
число семь это будет говорить о том что
11:41
вы досмотрели ролик до конца В прошлый
11:43
раз было много вопросов от тех людей
11:44
которые перематывают видео они никак не
11:46
могли понять что же значит Т это число и
11:49
честно говоря Это было очень смешно

Поделиться: