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

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

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Аннотации типов

Python имеет динамическую типизацию, и многие часто ругают за это язык.

Однако в новых версиях добавили поддержку аннотаций типов переменных, полей классов, аргументов функций и возвращаемых значений, что призвано упростить чтение и понимание кода.
🐍 3 классических паттерна проектирования в Python: синглтон, декоратор и итератор

Паттерны в Python – это шаблоны для решения задач, которые часто встречаются в практике программиста. Они представляют из себя огромный набор инструментов. В этом материале вы познакомитесь с самыми главными из них.

https://proglib.io/p/3-luchshih-patterna-proektirovaniya-v-python-singlton-dekorator-i-iterator-2022-02-03
Наследование

Ключевая механика ООП, позволяющая создать новый класс на основе уже имеющегося. При таком создании класса за основу берутся все атрибуты и методы родительского класса.

В примере на картинке класс Ferrari является дочерним классом Car.
Что выведет код?
Anonymous Quiz
12%
2
3%
1
8%
3
69%
Error
9%
Другое
Композиция (ассоциация) классов

Это полезный способ организации взаимодействия классов в парадигме ООП, когда один из классов (в примере на картинке это Wages) является полем другого (Worker).
pass

Оператор используется в качестве заглушки, в местах программы, где ничего не происходит. В примере на картинке есть цикл и функция, которые ничего не делают, и конструкция try-except, при возникновении ошибки в которой ничего не происходит.
Что выведет код?
Anonymous Quiz
9%
1 2 3 4 5
23%
15
39%
[1, 2, 3, 4, 5]
22%
Error
7%
Другое
Создание видео из изображений

В этом примере мы будем читать изображения, находящиеся в папке, одно за другим. Затем мы будем использовать Video Writer для записи каждого изображения в цикле в выходной файл видео.
Аргументы программ командой строки

При запуске скриптов через терминал есть возможность указывать передаваемые аргументы. Список этих аргументов — это argv во встроенном модуле sys.

Первым элементом списка argv всегда является имя программы, далее идут переданные аргументы.
Что выведет программа?
Anonymous Quiz
36%
15, 15
43%
(15, 15)
10%
[15, 15]
5%
3, 5
5%
Error
1%
Другое
Данные о памяти

Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
Что выведет код:
print(type({}) is set)
Anonymous Quiz
38%
False
29%
True
10%
None
12%
Ничего не выведет
8%
Error
3%
Другое
Senior Python Developer
Упаковка и сохранение JSON Напомним, что JSON — легкочитаемый формат для обмена данными, основанный на JavaScript, но при этом свободно используемый в практически любом языке программирования. На картинке показано, как сохранить словарь в JSON-файл.
Загрузка JSON-файла

Выполняется почти как сохранение, только с заменой в функции open() аргумента "w" на "r" (write на read сокращенно), и с использованием json.load() вместо json.dump().

JSON используется повсеместно в веб-разработке для передачи данных между клиентом и сервером.
Замена подстроки в строке

Пакет flashtext позволяет легко заменить подстроку в строке. Достаточно лишь указать, что на что нужно заменить, в функции add_keyword(), а затем вызвать у объекта-процессора метод replace_keywords().
Что выведет программа?
Anonymous Quiz
23%
{1, 2, 3, 4, 5}
30%
[1, 2, 3, 4, 5]
24%
{3}
16%
[3]
8%
Другое
Наборы символов

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