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
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 поступает почти так же с именованными аргументами — они записываются в соответствующий словарь.
Что выведет код?
Anonymous Quiz
5%
[1, 2, 3]
45%
2 None
9%
2None
17%
1
17%
Error
7%
Другое
Фильтрация False-значений

Данный код можно использовать для исключения всех "ложных" значений из списка, к примеру false, 0, None, " ".
Особая переменная __name__

Когда интерпретатор Python работает с программой, в начале он устанавливает некоторые специальные переменные. Одна из них — __name__.

Если скрипт запущен напрямую, то в переменную присваивается значение __main__, в случае импорта — название модуля.

__name__ по умолчанию также есть у всех классов и функций. Популярный вид работы с переменной — установка точки входа в программу.
Тернарный оператор

Тернарный оператор — это сокращённая форма записи условного выражения if-else. Вот пример использования.
Встроенная функция help()

Это простой способ получения доступа к документации без интернета для любой функции, ключевого слова или модуля. Работает и для внешних пакетов, но не всегда корректно.