TRICKY_PYTHON Telegram 113
List comprehensions (выражения типа [x for x in iterable]) в питоне обычно сложновато даются новичкам. Но стоит один раз разобраться с синтаксисом, как понимаешь, насколько это удобный инструмент. Более того, они быстрее чем .append() в список в цикле.

И вот в новом PEP 709 предлагают оптимизировать их работу. Сейчас при переводе list/dict/set comprehension в байткод происходит создание вложенной функции и ее исполнение. Авторы PEP предлагают не создавать эту дополнительную вложенную функцию, а сразу писать в байткоде ее содержимое (inline). Это должно быть безопасно, так как в случае list comprehention мы не можем стандартными средствами в процессе его выполнения как-то повлиять на переменные внутри.

У этого подхода есть большой плюс - ускорение исполнения подобных выражений на 11% на тестах. Из минусов - в трейсбеках больше не будет пункта listcomp и при трейсинге/профилировании не будет видны вход в comprehension и выход из него. На мой взгляд плюсы заметно перевешивают минусы, надеюсь этот PEP примут и внедрят в одном из ближайших релизов.

Ссылка https://peps.python.org/pep-0709/
👍28



tgoop.com/tricky_python/113
Create:
Last Update:

List comprehensions (выражения типа [x for x in iterable]) в питоне обычно сложновато даются новичкам. Но стоит один раз разобраться с синтаксисом, как понимаешь, насколько это удобный инструмент. Более того, они быстрее чем .append() в список в цикле.

И вот в новом PEP 709 предлагают оптимизировать их работу. Сейчас при переводе list/dict/set comprehension в байткод происходит создание вложенной функции и ее исполнение. Авторы PEP предлагают не создавать эту дополнительную вложенную функцию, а сразу писать в байткоде ее содержимое (inline). Это должно быть безопасно, так как в случае list comprehention мы не можем стандартными средствами в процессе его выполнения как-то повлиять на переменные внутри.

У этого подхода есть большой плюс - ускорение исполнения подобных выражений на 11% на тестах. Из минусов - в трейсбеках больше не будет пункта listcomp и при трейсинге/профилировании не будет видны вход в comprehension и выход из него. На мой взгляд плюсы заметно перевешивают минусы, надеюсь этот PEP примут и внедрят в одном из ближайших релизов.

Ссылка https://peps.python.org/pep-0709/

BY Хитрый Питон




Share with your friend now:
tgoop.com/tricky_python/113

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the messages, which included urging the disruption of airport operations, were attempts to incite followers to make use of poisonous, corrosive or flammable substances to vandalize police vehicles, and also called on others to make weapons to harm police. Add up to 50 administrators Channel login must contain 5-32 characters Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.” Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel.
from us


Telegram Хитрый Питон
FROM American