Python Skills 🐍 – Telegram
Python Skills 🐍
307 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
Выполнение методов класса без создания экземпляра

В Python есть аналог конструкции static как в других объектно ориентированных языках программирования. Мы можем создать методы, выполнение которых не требует создания экземпляра класса. Для это используем директиву @classmethod.

В примере наглядно продемонстрирована работа механизма.
Sphinx

Что за библиотека и зачем она вам нужна?

Sphinx это система автоматической генерации документации к приложению. Позволяет создавать html-документы. Содержит также другие возможности организации автодокументации.

Автодокументация - это механизм автоматического построения документации к вашему проекту, в качестве поясняющих конструкций выступают блоки комментариев к самому коду. Там же и размечаются многие другие особенности построения документа.

Зачастую в вакансиях Python-разработчиков требуется понимание работы этой библиотеки.

Установка
 pip install -U Sphinx
dateparser - это крутая библиотека, позволяющая переводить по сути любую дату из строкового представления в объект datetime.

Это может быть очень удобно при парсинге, либо при запросе некой даты у пользователя.
Он сможет ввести что-то вроде "10 января 2022", а вы в коде получите удобный datetime.
Плюс модуль на изичах работает с любым языком (в т.ч. на русском).

Крч годнота 🔥
Ставится командой pip install dateparser
Документация здесь.
Приведение типов

Да, Python это динамически типизированный язык программирования. Однако, приведение типов крайне важный аспект разработки. Мы отразили самые распространенные встроенные функции приведения типов.
Вызов программ операционной системы

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

sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.

Также в модуле реализована функция which, которая находит полный путь до программы либо возвращает None, если программа не найдена.

#sh
my_str = 'pypython'
my_str.replace('py', '', 1)
print(my_str)
Anonymous Poll
7%
thon
15%
Error
40%
python
24%
pypython
14%
Посмотреть ответ
Сохраняем объект pickle

Рассмотрим подробный, полный цикл сохранения. Создаем список товаров, создаем файл, записываем в файл с помощью pickle.

Очень просто и легко, можно запаковать в функцию и проблем не будет никаких. Особенно для оперативного использования.
🧑‍💻 Количество строк кода в популярных сервисах/приложениях.

А сколько строк было максимум в ваших проектах? 🤔
​​Находим схожие строки

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

Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.

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

#difflib
aiosqlite - это асинхронный вариант библиотеки sqlite3.
Её удобно применять, скажем, в связке с aiogram для разработки телеграм ботов.
Так как выполнение запросов к БД не блокирует основной поток.

Ставится командой pip install aiosqlite
Документация здесь.
Функция setattr()

Функция позволяет устанавливать аттрибуты объекта, это позволяет оперировать объектами более детально и автоматизировано.

Например, в случае, когда мы не знаем изначально в какое поле будем писать данные.
Учитесь, пока не поздно ☝️