3.73K subscribers
478 photos
29 videos
35 files
343 links
Здесь есть всё, чтобы упростить вам изучение Python.
Download Telegram
Что выведет программа?
Anonymous Quiz
15%
['ab', 'cd']
59%
['AB', 'CD']
5%
Ничего
21%
Error
Статические методы

Отличие статического метода от обычного метода класса в том, что первый привязан к классу, а не объекту.

Такой тип методов по умолчанию не принимает ни объект, ни класс – прописывать self или cls в аргументах не нужно. То есть статические методы не могут модифицировать ни объект, ни сам класс.

Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Что выведет программа?
Anonymous Quiz
29%
{3, 4, 5, 1, 2, 3}
23%
[1, 2, 3, 4, 5]
21%
{1, 2, 3, 4, 5}
27%
Error
Генерируем ID для пользователя.

Существует несколько способов определения для пользователя уникального интендификатора.

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

Универсальный
Генерируем с помощью встроенной библиотеки UUID, позволяет создавать уникальные номера пользователей с очень низкой долей погрешности. Для безопасной генерации используем функцию uuid.uuid4().
Упрощаем логирование

Для Pyhton есть овер-полезная библиотека, которая в разы упрощает систему логирования.

Установка: pip install loguru

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

В первом случае, все выглядит очень смято и торчит со всех сторон. Во втором же, красиво и элегантно! Возьмите на вооружение.
Кортежи в циклах

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

Мы можем разбирать сложные составные массивы, списки с помощью кортежей и циклов. Это очень полезный, удобный инструмент.
Сокращаем условие

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

Определяя свой класс на основе слова мы можем определить поведение при отсутствии запрашиваемого элемента. В словарях в таких ситуациях выводится слово "None".

Директива missing определяет поведение класса при отсутствующем элементе словаря.
Сортируем словарь по значениям

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

Встроенная библиотека shutil позволяет проводить множество расширенных операций с файлами.

1. Архивирование
2. Копирование группы папок
3. Получение мета-информации
4. Статистика использования дисков
5. Изменение прав доступа к файлу

Часто используется вместе с модулем os и прекрасно его дополняет. При работе с файлами больше чем запись в один файл, без этой библиотеки не обойтись.

Документация и использование
Случайные числа

Часто при разработке приложения появляется необходимость в случайном числе. В Python есть встроенный модуль random имеющий ряд функций для работы со случайными числами.

Документация
Встроенный модуль pprint

Модуль представляет собой модифицированную версию print для вывода больших структурных данных. Может выводить информацию о типах, разработанных пользователем.

Документация
Анимируем математические модели

Для Python есть замечательная библиотека Manim. Отлично подойдет для презентаций и визуального понимания работы тех или иных математических моделей.

Причем это не просто библиотека, а целый движок для работы с математической графикой. Функционал у него куда шире, чем просто визуализация, с помощью него можно создавать полноценные интерактивные презентации.

GitHub
Проверка типа переменной

Функция isinstance(), проверяет тип для переменной, первый аргумент переменная, второй тип данных для проверки. На основе этого реализуем функцию проверки переменной на числовой тип данных.
Собираем строку воедино

Этот прием полезен, когда у нас много информации из разных источников. Например, показания приборов или статистика. Компонуем в один массив, а затем делаем красивый вывод.
Случайный элемент массива

Библиотека random годится не только для генерации случайных чисел, в ней также есть набор функций для множества случайных событий.

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

Класс Process из встроенного модуля multiprocessing позволяет создавать процессы без прямого вызова функции fork, про которую писали раньше на канале.

При создании экземпляра Proccess необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start. Внутри метода start будет вызван fork и будет исполнена функция в отдельном процессе.

Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией join.