SQLModel
Библиотека для работы с базой данных или, по другому, ORM. Она намного проще и лучше составляет модели, чем SQLAlchemy, ведь использует Pydantic.
Она также хорошо работает с FastAPI. Это и неудивительно, ведь автор один и тот же.
#теория
Библиотека для работы с базой данных или, по другому, ORM. Она намного проще и лучше составляет модели, чем SQLAlchemy, ведь использует Pydantic.
Она также хорошо работает с FastAPI. Это и неудивительно, ведь автор один и тот же.
#теория
👍14❤🔥1❤1
flake8
У Python есть свод правил по написанию кода, известный как PEP 8. Так вот задача flake8 — сделать так чтобы ваш код соответствовал этим стандартам.
Программа легко интегрируется с существующими редакторами кода и если что-то не так — выдаёт предупреждение.
P.S. Такие приложения называют линтерами (от linter).
#теория
У Python есть свод правил по написанию кода, известный как PEP 8. Так вот задача flake8 — сделать так чтобы ваш код соответствовал этим стандартам.
Программа легко интегрируется с существующими редакторами кода и если что-то не так — выдаёт предупреждение.
P.S. Такие приложения называют линтерами (от linter).
#теория
👍9
from itertools import chain
Используется для прохода по нескольким последовательностям как по одной. Функция возвращает элементы из первого итератора, потом из второго и т.д.print(*iter)распаковывает значения iter и выводит все элементы через пробел.
#объяснение
👍6🔥1
GIL
Python Global Interpreter Lock — блокировка, позволяющая только одному потоку управлять интерпретатором Python.
Именно GIL делает многопоточность в Python бесполезной для CPU нагрузки. Ведь, сколько потоков не создавай, всё равно будет выполняться только один.
Просто убрать GIL нельзя из-за гонки данных. Тот же сборщик мусора может неправильно посчитать кол-во используемых объектов и очистить нужный раздел памяти.
Кому интересно — вот хорошая статья.
#теория
Python Global Interpreter Lock — блокировка, позволяющая только одному потоку управлять интерпретатором Python.
Именно GIL делает многопоточность в Python бесполезной для CPU нагрузки. Ведь, сколько потоков не создавай, всё равно будет выполняться только один.
Просто убрать GIL нельзя из-за гонки данных. Тот же сборщик мусора может неправильно посчитать кол-во используемых объектов и очистить нужный раздел памяти.
Кому интересно — вот хорошая статья.
#теория
👍9🤔2
Три точки
Ellipsis переводится с английского как многоточие, поэтому обозначается объект двумя способами:
В аннотации типов с помощью троеточий мы указываем что может быть неограниченное количество объектов определённого типа.
#теория
Ellipsis переводится с английского как многоточие, поэтому обозначается объект двумя способами:
Ellipsis
и ...
Он используется в качестве замены ключевого слова pass
, в аннотации типов и как доп. функционал для матриц.В аннотации типов с помощью троеточий мы указываем что может быть неограниченное количество объектов определённого типа.
#теория
👍3🔥3
Poetry
Одному человеку не понравилось как работа с пакетами реализована в Python, поэтому он решил создать альтернативу pip.
Данный проект действительно удобнее, он лучше обращается с зависимостями и не требует использования виртуального окружения.
Вся информация хранится в
#теория
Одному человеку не понравилось как работа с пакетами реализована в Python, поэтому он решил создать альтернативу pip.
Данный проект действительно удобнее, он лучше обращается с зависимостями и не требует использования виртуального окружения.
Вся информация хранится в
pyproject.toml
, который автоматически обновляется при установке каждого пакета и позволяет их настраивать.#теория
👍10❤2
Парочка слов
Начнём с того, что Python 4 не будет, по словам Гвидо, ему хватило проблем с переходом со 2-ой на 3-ю. Лучше постепенно добавлять функционал.
И вместе с этим Гвидо обещает ускорение Python почти в 2 раза в 3.11 и в пять раз через 4 года.
Здесь, кстати, можно посмотреть следующие шаги по оптимизации.
#оффтоп
Начнём с того, что Python 4 не будет, по словам Гвидо, ему хватило проблем с переходом со 2-ой на 3-ю. Лучше постепенно добавлять функционал.
И вместе с этим Гвидо обещает ускорение Python почти в 2 раза в 3.11 и в пять раз через 4 года.
Здесь, кстати, можно посмотреть следующие шаги по оптимизации.
#оффтоп
👍19🔥2
Как запретить наследование
Код выше не выдаёт ошибку если программист пытается наследоваться от конечного класса.
Внутри модуля
#теория
Код выше не выдаёт ошибку если программист пытается наследоваться от конечного класса.
__init_subclass__
вызывается для инициализации подкласса. Метод выдаёт ошибку и останавливает выполнение.Внутри модуля
typing
есть декоратор final
, но он только предупреждает программиста, что наследоваться от этого класса не стоит.#теория
❤11👍2
from contextlib import suppress
Функция подавляет ошибку. Это похоже на try: ... except AnyException: pass
, но работает с with и выглядит намного лаконичнее, понятнее.#теория
👍15😁2
Тесты в документации
Подход позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её функционал.
Реализуется фича встроенным модулем doctest. Он ищет текст, который выглядит как интерактивный сеанс Python (>>>, ... и подобные символы), запускает их и сравнивает вывод.
Можно запускать тесты так же, как в примере, или с помощью терминала:
#миниурок #doctest
Подход позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её функционал.
Реализуется фича встроенным модулем doctest. Он ищет текст, который выглядит как интерактивный сеанс Python (>>>, ... и подобные символы), запускает их и сравнивает вывод.
Можно запускать тесты так же, как в примере, или с помощью терминала:
python -m doctest -v example.py
.#миниурок #doctest
👍8
pickle
Встроенный модуль позволяет сохранять объекты в виде потока байтов и сохранять в файл, а после загружать его обратно в память в виде объекта.
У pickle есть серьёзный недостаток: он небезопасен. Если есть возможность, лучше использовать другой формат: JSON, например. Сравнение JSON с pickle.
#lesson
Встроенный модуль позволяет сохранять объекты в виде потока байтов и сохранять в файл, а после загружать его обратно в память в виде объекта.
У pickle есть серьёзный недостаток: он небезопасен. Если есть возможность, лучше использовать другой формат: JSON, например. Сравнение JSON с pickle.
#lesson
👍8
Как поживает ваш питон?
Не могу судить по предпочтениям, но уже стоит переходить с Python2 на Python3. Если лень переписывать код, то просто запустите 2to3.
Всё правильно, это ретранслятор, который переводит Python код с второй версии на третью.
P.S. Возможно придётся установить доп. модуль. Например, на OpenSuse, пришлось выполнить
#теория
Не могу судить по предпочтениям, но уже стоит переходить с 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 ссылками, она разделяет ссылку на схему, пользователя, пароль, хост и путь. Так с её помощью собирают информацию из ссылки или проводят валидацию.
📌 Документация
#теория
Это библиотека для работы с URL ссылками, она разделяет ссылку на схему, пользователя, пароль, хост и путь. Так с её помощью собирают информацию из ссылки или проводят валидацию.
📌 Документация
#теория
👍10