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:
Утраченные функции:
- Утрата методов wave.Wave_read и wave.Wave_write
- Устранение аргументов ключевых слов при создании классов typing.NamedTuple
- Устранение использования функционального синтаксиса при создании классов typing.NamedTuple и typing.TypedDict
- Утрата кода формата массива ‘u’.
- Утрата функций ctypes.SetPointerType() и ctypes.ARRAY()
Удаленные функции
- Удаление модуля telnetlib.
- Удаление программы 2to3 и модуля lib2to3.
- Удаление пространств имен typing.io и typing.re.
- Удаление класса webbrowser MacOSX
- Удаление поддержки использования объекта pathlib.Path в качестве менеджера контекста
- Удаление класса configparser.LegacyINterpolation.
- Удаление метода turtle.RowTurtle.settiltangle().
- Удаление некоторых функций unittest
- Удаление модулей cgi и cgitb
- Удалены различные модули и пакеты, такие как 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.