Разъяснивший Python
8.18K subscribers
2.43K photos
40 videos
30 files
2.28K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
SQLModel

Библиотека для работы с базой данных или, по другому, ORM. Она намного проще и лучше составляет модели, чем SQLAlchemy, ведь использует Pydantic.

Она также хорошо работает с FastAPI. Это и неудивительно, ведь автор один и тот же.

#теория
👍14❤‍🔥11
Было?
😁52🤯3👍1
flake8

У Python есть свод правил по написанию кода, известный как PEP 8. Так вот задача flake8 — сделать так чтобы ваш код соответствовал этим стандартам.

Программа легко интегрируется с существующими редакторами кода и если что-то не так — выдаёт предупреждение.

P.S. Такие приложения называют линтерами (от linter).

#теория
👍9
from itertools import chain

Используется для прохода по нескольким последовательностям как по одной. Функция возвращает элементы из первого итератора, потом из второго и т.д.

print(*iter)
распаковывает значения iter и выводит все элементы через пробел.

#объяснение
👍6🔥1
Python позволяет нам переопределять поведение операторов, в том числе и побитовые сдвиги влево/вправо.

Таким образом мы можем создавать очень интересные вспомогательные утилиты.
👍4
GIL

Python Global Interpreter Lock — блокировка, позволяющая только одному потоку управлять интерпретатором Python.

Именно GIL делает многопоточность в Python бесполезной для CPU нагрузки. Ведь, сколько потоков не создавай, всё равно будет выполняться только один.

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

Кому интересно — вот хорошая статья.

#теория
👍9🤔2
Золотое правило программистов: Работает — не трожь!
😁40🤣9👍52👎1
Три точки

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

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

В аннотации типов с помощью троеточий мы указываем что может быть неограниченное количество объектов определённого типа.

#теория
👍3🔥3
Poetry

Одному человеку не понравилось как работа с пакетами реализована в Python, поэтому он решил создать альтернативу pip.

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

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

#теория
👍102
Парочка слов

Начнём с того, что Python 4 не будет, по словам Гвидо, ему хватило проблем с переходом со 2-ой на 3-ю. Лучше постепенно добавлять функционал.

И вместе с этим Гвидо обещает ускорение Python почти в 2 раза в 3.11 и в пять раз через 4 года.

Здесь, кстати, можно посмотреть следующие шаги по оптимизации.

#оффтоп
👍19🔥2
F удалёнщикам
😢544👎1🫡1
Шпаргалка по Vim. Тут даже сказано как из него выйти.
👍23🔥32👎1💘1
Скоро нас всех заменит ИИ...
💩51419😢4😁2
Как запретить наследование

Код выше не выдаёт ошибку если программист пытается наследоваться от конечного класса.

__init_subclass__ вызывается для инициализации подкласса. Метод выдаёт ошибку и останавливает выполнение.

Внутри модуля typing есть декоратор final, но он только предупреждает программиста, что наследоваться от этого класса не стоит.

#теория
11👍2
from contextlib import suppress

Функция подавляет ошибку. Это похоже на try: ... except AnyException: pass, но работает с with и выглядит намного лаконичнее, понятнее.

#теория
👍15😁2
Тесты в документации

Подход позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её функционал.

Реализуется фича встроенным модулем doctest. Он ищет текст, который выглядит как интерактивный сеанс Python (>>>, ... и подобные символы), запускает их и сравнивает вывод.

Можно запускать тесты так же, как в примере, или с помощью терминала: python -m doctest -v example.py.

#миниурок #doctest
👍8
pickle

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

У pickle есть серьёзный недостаток: он небезопасен. Если есть возможность, лучше использовать другой формат: JSON, например. Сравнение JSON с pickle.

#lesson
👍8
Как поживает ваш питон?

Не могу судить по предпочтениям, но уже стоит переходить с Python2 на Python3. Если лень переписывать код, то просто запустите 2to3.

Всё правильно, это ретранслятор, который переводит Python код с второй версии на третью.

P.S. Возможно придётся установить доп. модуль. Например, на OpenSuse, пришлось выполнить sudo zypper install python3-tools.

#теория
👍8😁2🤬1🤡1
for x[0] in x

for работает довольно просто, он задаёт следующие значение переданной переменной и выполняет код внутри блока. Так у нас меняется первый элемент списка, который мы и выводим.

#объяснение
👍13🤯11👎1🤩1
yarl

Это библиотека для работы с URL ссылками, она разделяет ссылку на схему, пользователя, пароль, хост и путь. Так с её помощью собирают информацию из ссылки или проводят валидацию.

📌 Документация

#теория
👍10