Исправление crypt, (текущая версия) :
Среди добавленных в Python 3.12 новшеств:
Например в Python 3.12 допускаются следующие конструкции:
print(f"This is the playlist: {«\n».join(songs)}«)print(f"This is the playlist: {»\N{BLACK HEART SUIT}«.join(songs)}»)print(f"This is the playlist: {", «.join([…‘Take me back to Eden’,# My, my, those eyes like fire…‘Alkaline’,# Not acid nor alkaline…‘Ascensionism’# Take to the broken skies at last… ])}»)
Для повышения эффективности использования ресурсов многоядерных систем реализована поддержка изолированных субинтерпретаторов и отдельных глобальных блокировок (GIL, Global Interpreter Lock) для разных интерпретаторов внутри процесса (CPython позволяет в одном процессе выполнять сразу несколько интерпретаторов). В текущем виде возможность пока доступна только через C-API (в Python API поддержка появится в следующей значительной ветке).
В Python-коде добавлена возможность использования протокола buffer. Классы, предоставляющие метод "__buffer__()", теперь могут использоваться как типы, напрямую работающие с бинарными данными в памяти.
Предложен модуль sys.monitoring для отладки и профилирования, позволяющий с минимальными накладными расходами отслеживать такие события в CPython, как вызовы, возвраты из функций, выполнение произвольных строк кода, исключения и переходы.
В интерпретаторе реализована поддержка подсистемы ядра Linux perf, позволяющая определять имена Python-функций при профилировании при помощи утилиты perf (ранее в трассировках определялись только имена Си-функций).
Повышена информативность сообщений об ошибках и расширен спектр исключений, предлагающих рекомендации по устранению опечаток. Например, теперь выводятся рекомендации по импорту забытых модулей стандартной библиотеки, показываются подсказки по добавлению префикса "self." в методах, определяется написание "import x from y" вместо "from y import x" и т.п.
Исходная версия crypt, :
Среди добавленных в Python 3.12 новшеств:
Например в Python 3.12 допускаются следующие конструкции:
print(f"This is the playlist: {«\n».join(songs)}«)print(f"This is the playlist: {»\N{BLACK HEART SUIT}«.join(songs)}»)print(f"This is the playlist: {", «.join([…‘Take me back to Eden’,# My, my, those eyes like fire…‘Alkaline’,# Not acid nor alkaline…‘Ascensionism’# Take to the broken skies at last… ])}»)
Для повышения эффективности использования ресурсов многоядерных систем реализована поддержка изолированных субинтерпретаторов и отдельных глобальных блокировок (GIL, Global Interpreter Lock) для разных интерпретаторов внутри процесса (CPython позволяет в одном процессе выполнять сразу несколько интерпретаторов). В текущем виде возможность пока доступна только через C-API (в Python API поддержка появится в следующей значительной ветке).
В Python-коде добавлена возможность использования протокола buffer. Классы, предоставляющие метод "__buffer__()", теперь могут использоваться как типы, напрямую работающие с бинарными данными в памяти.
Предложен модуль sys.monitoring для отладки и профилирования, позволяющий с минимальными накладными расходами отслеживать такие события в CPython, как вызовы, возвраты из функций, выполнение произвольных строк кода, исключения и переходы.
В интерпретаторе реализована поддержка подсистемы ядра Linux perf, позволяющая определять имена Python-функций при профилировании при помощи утилиты perf (ранее в трассировках определялись только имена Си-функций).
Повышена информативность сообщений об ошибках и расширен спектр исключений, предлагающих рекомендации по устранению опечаток. Например, теперь выводятся рекомендации по импорту забытых модулей стандартной библиотеки, показываются подсказки по добавлению префикса "self." в методах, определяется написание "import x from y" вместо "from y import x" и т.п.
sys.version_infoNameError: name ‘sys’ is not defined. Did you forget to import ‘sys’?somethin = blechNameError: name ‘blech’ is not defined. Did you mean: ‘self.blech’?import a.y.z from b.y.zSyntaxError: Did you mean to use ‘from … import …’ instead?from collections import chainmapImportError: cannot import name ‘chainmap’ from ‘collections’. Did you mean: ‘ChainMap’?