
Улучшения Comprehensions в Python 3.12
Изначально технология была реализована как одноразовая функция, которая создавала объект при каждом выполнении Comprehension. В Python 3.12 технология была встроена в язык, что ускоряет выполнение примерно в 2 раза, так как она больше не идентифицирует себя как функция и не несет лишних расходов. В реальных условиях скорость выросла примерно на 11%.
За счет того, что Comprehension был встроен внутрь языка, изменилась также трассировка, теперь она стала более понятной.
Python 3.11 включал Comprehension в Traceback как отдельную функцию, что создавало доп.вопросы:
Изначально технология была реализована как одноразовая функция, которая создавала объект при каждом выполнении Comprehension. В Python 3.12 технология была встроена в язык, что ускоряет выполнение примерно в 2 раза, так как она больше не идентифицирует себя как функция и не несет лишних расходов. В реальных условиях скорость выросла примерно на 11%.
За счет того, что Comprehension был встроен внутрь языка, изменилась также трассировка, теперь она стала более понятной.
Python 3.11 включал Comprehension в Traceback как отдельную функцию, что создавало доп.вопросы:
Traceback (most recent call last):Теперь это выглядит так:
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in f
File "<stdin>", line 5, in <listcomp>
File "<stdin>", line 2, in g
RuntimeError: boom
Traceback (most recent call last):130 🔥 и идем дальше
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in f
File "<stdin>", line 2, in g
RuntimeError: boom