ru
Feedback
Хитрый Питон

Хитрый Питон

Открыть в Telegram

Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm

Больше
2 505
Подписчики
Нет данных24 часа
+17 дней
+130 день
Архив постов
Два больших гайда про то, что такое ThreadPoolExecutor и ProcessPoolExecutor и как их использовать: - https://superfastpython.com/threadpoolexecutor-in-python/ - https://superfastpython.com/processpoolexecutor-in-python/

Интересная статья про то, почему декоратором @lru_cache нельзя обертывать методы классов. Если коротко - объект не будет удаляться garbage collector-ом что может привести к неожиданным утечкам памяти. Также @lru_cache не умеет игнорировать self в списке аргументов, поэтому кэш будет для каждого объекта свой и кеширование по факту не будет работать. С методами классов, статическими методами и обычными функциями работает, как и ожидается. https://rednafi.github.io/reflections/dont-wrap-instance-methods-with-functoolslru_cache-decorator-in-python.html

Неплохая вводная статья про профайлинг в python. В статье показано несколько инструментов, которые помогут понять, что именно в программе есть много cpu или памяти https://martinheinz.dev/blog/64

Если вам когда-нибудь было интересно, как устроены линтеры — вот вам хороший подробный туториал по AST. Модуль AST позволяет представить исходный код в виде дерева и анализировать или даже модифицировать его. Разобрано очень подробно, с множеством примеров, рекомендую https://sadh.life/post/ast/

Последние полгода были очень нагруженными (и интересными) и на ведение канала времени не оставалось. К Новому году удалось разгрести несколько больших проектов, и я снова буду регулярно сюда писать. Ах да, и с наступившим вас!

photo content

Я использую GitHub Actions практически с момента их релиза в паблик и мне нравится. Поэтому я решил записать видео с рассказом о том, как прикрутить их к своему репозиторию https://youtu.be/NijFSs03Pd4

Хорошая обзорная статья по то, как сделать docker-образы для своих python-приложений лучше https://pythonspeed.com/articles/smaller-docker-images/

Записал новое видео про аннотации типов, mypy и его настройку - https://www.youtube.com/watch?v=_vAb8M4SUSg

Второе видео про хеширование в питоне. Здесть я показал, зачем может быть нужно определять метод hash для своих классов и какие там подводные камни https://www.youtube.com/watch?v=OW_gSexoT64

Если спросить начинающего разработчика, какие типы данных могут быть ключами словарей, ответ будет "строки". Более опытный разработчик скажет, что ключами словаря может быть любой иммутабельный тип данных. Но это тоже не совсем правда. Записал видео про hash() и показал, для чего можно использовать кортежи в качестве ключей словаря https://youtu.be/HPsm4eOaR8I

В нескольких предыдущих видео я рассказывал о том, как устроены декораторы и для чего их можно применять. Сегодня я хочу показать еще один вариант использования декоратора - предварительная обработка аргументов, передаваемых в задекорированную функцию - https://youtu.be/fZSvsC3i9VI

В прошлый раз мы реализовали безопасную перезапись файла при помощи менеджера контекста на базе класса. Сейчас решим ту же задачу используя декоратор contextmanager из модуля contextlib стандартной библиотеки - https://youtu.be/tMGf9GwjY6g

Наткнулся на статью, рассказывающую как оформить библиотеку, опубликовать ее на pypi и добавить разную приятную автоматизацию https://antonz.org/python-packaging/

Контекстные менеджеры - очень полезная штука в python. Давайте разберем использование context manager на примере atomic write. Т.е. если в процессе записи информации в файл произойдет ошибка, мы должны откатиться к предыдущей версии файла. https://youtu.be/e1d74l02MVc

Сегодня я хочу рассказать еще про одну оптимизацию в cpython - свертку констант или constant folding https://www.youtube.com/watch?v=TpqAVEU0eZI

Записал видео про PATH и виртуальное окружение https://www.youtube.com/watch?v=qELk8D-pAos

Довольно часто атрибуты класса используют для задания значения по умолчанию, и это может привести к весьма неожиданным последствиям. Рассказываю, как не выстрелить себе в ногу https://www.youtube.com/watch?v=pZ3gs9ze_00

Леонид Хозяинов опубликовал перевод нескольких разделов документации python 3.8.8 https://www.opennet.ru/opennews/art.shtml?num=54908

Одной из самых раздражающих ловушек в питоне, в которую попадают новички - это mutable значения по-умолчанию у именованных аргументов функции. Думаю будет полезно разобраться, почему все работает именно так https://www.youtube.com/watch?v=TrKww0kmLk4