42 минуты С-шного хардкора про bytearray, что может быть лучше?
https://www.youtube.com/watch?v=5UFx29EVlkU
В видео будет про:
- Разные аллокаторы в CPython: PyMem_Malloc и PyMem_Realloc
- C-pointer math (для самых маленьких)
- Разные хитрые оптимизации для работы с
bytearrayБонус 1
Я обещал поделиться логикой стратегии изменения размера
bytearray. Бонус 2
Интересный вопрос, который я не осветил в видео. Почему код работает так?
>>> b = bytearray(b'1234')
>>> del b[:4:2]
>>> b.__alloc__()
5
Почему так?
1. Вызывается функция: bytearray_ass_subscript
2.
values будет NULL, потому как удаление (сишный аналог __delitem__ из питона работает так)3. Дальше распаковываем
slice в переменные тут4. Удаляем тут хитрым и достаточно быстрым способом
Ответы
Ответ на вопрос из видео с поиском бага на слайде в Cшном коде: https://github.com/python/cpython/pull/126981
| Поддержать | YouTube | GitHub |