Python 3.13.0a0 Что нового?

Захватывающие возможности

В настоящее время Python 3.13.0a0 находится в стадии разработки и содержит ряд новых возможностей и улучшений. В этой статье мы рассмотрим некоторые из новых возможностей Python 3.13.0a0 и приведем несколько примеров кода для начала работы.

Самой последней версией является 3.11.4, а 3.12 находится в стадии раннего предварительного просмотра. Вы можете лучше понять Python 3.13.0a0, прочитав эти статьи о Python 3.11.4 и Python 3.12.

Новые возможности

Новых модулей пока нет, но есть несколько улучшенных модулей: array, io, pathlib, traceback, typing.

  • массив: Код типа ‘w’ можно использовать для строк Unicode.
  • io: метод close() финализатора theio.IOBase теперь регистрирует ошибки с помощью sys.unraisablehook.
  • pathlib: Добавлены изменения в pathlib.PurePath.match(), pathlib.Path.glob() и rglob().
  • tracebackВ traceback.TracebackException.format_exception_only() добавлен параметр show_group.
  • typing: typing.get_protocol_members() был добавлен набор членов, определяющих typing.Protocol. typing.is_protocol() был добавлен для проверки того, является ли класс typing.Protocol.

Оптимизация производительности

Из программы PEP 594:

Утраченные функции:

  1. Утрата методов wave.Wave_read и wave.Wave_write
  2. Устранение аргументов ключевых слов при создании классов typing.NamedTuple
  3. Устранение использования функционального синтаксиса при создании классов typing.NamedTuple и typing.TypedDict
  4. Утрата кода формата массива ‘u’.
  5. Утрата функций ctypes.SetPointerType() и ctypes.ARRAY()

Удаленные функции

  1. Удаление модуля telnetlib.
  2. Удаление программы 2to3 и модуля lib2to3.
  3. Удаление пространств имен typing.io и typing.re.
  4. Удаление класса webbrowser MacOSX
  5. Удаление поддержки использования объекта pathlib.Path в качестве менеджера контекста
  6. Удаление класса configparser.LegacyINterpolation.
  7. Удаление метода turtle.RowTurtle.settiltangle().
  8. Удаление некоторых функций unittest
  9. Удаление модулей cgi и cgitb
  10. Удалены различные модули и пакеты, такие как sndhdr, pipes, ossaudiodev, mailcap, spwd, nntplib, nis, xdrlib, msilib, crypt, uu, aifc, audioop, chunk, imghdr, unittest.TestProgram.usageExit(), tkinter. tix, макросы trashcan, locale.resetlocale(), logging.Logger.warn(), параметры urllib.request.urlopen(), атрибут webbrowser.MacOSXOSAScript._name, функция re.template и флаг re.TEMPLATE

Изменения в API на языке C

Утратил актуальность:

Утратили свою актуальность старые функции инициализации Python, такие как

  • PySys_ResetWarnOptions()
  • PY_NAME_GetExecPrefix()
  • Py_GetPath()
  • Py_GetPrefix()
  • Py_GetProgramFullPath()
  • Py_GetProgramName()
  • Py_GetPythonHome()
  • Утратила актуальность функция Py_ImportModuleNoBlock(), удаление которой запланировано в Python 3.15. Удалены:

Удалено:

Удалены функции, устаревшие в Python 3.9, такие как PyEval_CallObject(), PyEval_CallObjectWithKeywords(), PyEval_CallFunction(), PyEval_CallMethod() иPyEval_CFunction_Call().

Следующие старые функции для настройки инициализации Python, устаревшие в Python 3.11, были удалены:

  • PySys_AddWarnOptionUnicode(): Вместо этого используйте PyConfig.warnoptions.
  • PySys_AddWarnOption(): Вместо этого используйте PyConfig.warnoptions.
  • PySys_AddXOption(): Использовать PyConfig.xoptions.
  • PySys_HasWarnOptions(): Вместо этого используйте PyConfig.xoptions.
  • PySys_SetArgvEx(): Вместо этого установите PyConfig.argv.
  • PySys_SetArgv(): Установить вместо PyConfig.argv.
  • PySys_SetPath(): Установить вместо PyConfig.module_search_paths.
  • Py_SetPath(): Вместо этого установить PyConfig.module_search_paths.
  • Py_SetProgramName(): Вместо этого установить PyConfig.program_name.
  • Py_SetPythonHome(): Вместо этого установить PyConfig.home.
  • Py_SetStandardStreamEncoding(): Установить вместо PyConfig.stdio_encoding.
  • _Py_SetProgramFullPath(): Установить вместо PyConfig.executable.
+1
2
+1
1
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *