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
11%
['ab', 'cd']
49%
['AB', 'CD']
8%
Ничего
31%
Error
setattr()

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

В пакете sys присутствует переменная version_info, которая хранит в себе версию Python, с помощью которого запущена программа.
Перечисления

Перечисление (enumeration) — это набор имён, привязанных к уникальным неизменным значениям. Python поддерживает работу с перечислениями, с их помощью удобно хранить списки констант.

Члены одного перечисления можно сравнивать, а также обходить с помощью циклов. Подробнее о перечислениях можно почитать в документации: https://docs.python.org/3/library/enum.html
Форматирование строк

Вставить переменную в строку можно несколькими способами. Проще всего использовать f-строки, с их помощью можно наглядно вставлять переменные в нужные места в фигурных скобках. Оператор % и метод format уже довольно устарели и использовать в новых проектах их не стоит.
Встроенная функция map

На вход принимает два аргумента — функцию (!) и объект, к элементам которого её надо применить. В примере мы применяем функцию, которая умножает число само на себя, к числам из списка.
Что выведет код?
Anonymous Quiz
9%
-0.0
49%
0.0
20%
0
14%
Ошибка
7%
Не знаю
Комплексные числа

Python преобразует числа в комплексные с помощью функции complex(x, y), получая комплексное число по стандартной формуле x + i * y, где x, y — вещественные числа, а i — мнимая единица (i в квадрате равно -1). Для лучшей работы пригодится модуль cmath.
Что выведет программа?
Anonymous Quiz
6%
5
4%
8
30%
3
8%
None
49%
Error
3%
Другое
Применение функций по условиям

Знакомый тернарный оператор можно использовать и с функциями. Пример на картинке.
literal_eval

Фича для безопасного исполнения выражений, состоящих только из литералов.
Вычисление размера объектов

Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof().

Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.
Функция reduce

Модуль functools раскрывает функциональные возможности Python. Например, в нём есть интересная функция reduce, последовательно применяющая функцию-аргумент к элементам списка, возвращая при этом в итоге единичное значение.

В примере мы используем функцию для последовательного сложения элементов списка.
Операторы множеств

Множество — это неупорядоченная коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды.

Помимо обычных методов, у множеств реализована поддержка различных операторов: объединение, пересечение, симметрическая разность, обычная разность и некоторые другие.

Примеры этих операторов можете посмотреть выше на картинке.
Numerizer

С помощью функции numerize из пакета numerizer можно перевести текст в числа, то есть, например, из строки "five" получить число 5. К сожалению, работает только с английским языком.
Генерация случайных данных

Пакет faker позволяет создавать случайные данные, которые затем можно использовать, например, для тестирования программ. К примеру методы name, address, job и email генерируют соответственно случайное несуществующее имя, адрес, должность и почту.

Разнообразие методов довольно широкое, с полным спектром можно ознакомиться в документации.
Деструкторы

В дополнение к конструкторам в Python также существуют и деструкторы. В каждом конкретном классе деструктор можно переопределить с помощью метода __del__, который вызывается автоматически при удалении объекта.

Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.