Senior Python Developer
40.8K subscribers
2.24K photos
6 videos
1 file
560 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Что выведет программа?
Anonymous Quiz
23%
{1, 2, 3, 4, 5}
30%
[1, 2, 3, 4, 5]
24%
{3}
16%
[3]
8%
Другое
Наборы символов

У пакета string из стандартной библиотеки можно заполучить наборы символов. Есть возможность получить английский алфавит в низком регистре, в высоком и оба сразу, а также числа по порядку. Это может пригодиться в разных ситуациях, к примеру, для генерации паролей.
Программа, генерирующая сложные пароли

Воспользуемся наборами цифр и букв из стандартной библиотеки. Объединим их в одну строку, затем зададим требуемую длину пароля и с помощью цикла соответствующей длины и функции choice из модуля random, позволяющей выбрать случайный символ из строки, сформируем пароль.
Что выведет код?
Anonymous Quiz
14%
HelloHi
53%
olleHHi
13%
Error
20%
Другое
Узнаём, из какого модуля функция

Для этого используется модуль inspect. Функция inspect.getmodule даёт информацию о том, откуда импортирована функция.
Узнаём атрибуты и методы класса

С помощью dir() можно получить список всех атрибутов и методов ‌‎любого‌‎ ‌‎объекта. Может пригодиться при изучении пакетов сторонних разработчиков.
Что выведет программа?
Anonymous Quiz
13%
0 1
69%
24 Alex
11%
Alex 24
7%
Другое
Кэширование функций

На картинке — пример, где кэширование фактически спасает программу от зависания: декорация @lru_cache(maxsize=32), выполняющая кэширование, позволила сэкономить время выполнения программы. Кэширование помогает тогда, когда функция периодически вызывается с одинаковыми аргументами, промежуточно сохраняя результат, а не пересчитывая всё заново каждый раз.
Что выведет код?
Anonymous Quiz
41%
1
30%
2
13%
Error
10%
None
5%
Другое
Walrus Operator :=

Это отдельный способ присвоения значения переменной. Отличается от стандартного тем, что не только присваивает переменной значение, но и сразу же, на месте, возвращает его, позволяя делать программы более гибкими и короткими.
Функция shuffle

Данная функция из встроенного модуля random, созданного для работы со случайностями, позволяет перемешивать последовательности. В примере она работает с двумя списками. Обратите внимание, что она именно меняет списки, а не создаёт новые изменённые, сама по себе ничего не возвращая.
Делаем скриншот с помощью кода

Модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Не забудьте также установить модуль pillow для его работы.

К примеру, пригодится для логов скриптов, использующих Selenium, чтобы видеть, что происходило в браузере. Документация: https://github.com/ponty/pyscreenshot/tree/3.0
Параметры *args и **kwargs

*args используется, когда неизвестно, сколько именно аргументов будет принимать функция. В коде в переменную args записывается кортеж всех переданных значений. *kwargs поступает почти так же с именованными аргументами — они записываются в соответствующий словарь.