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
Представляем вам подборку всех топовых нейро-ботов в Telegram без лимитов на использования.
🎯Пользуемся:
@Stable_Diffusion_bot - способен раздеть твою подругу в 5 кликов за 1 минуту. Напрочь отсутствует цензура.
@ChatGPT-4_bot (абсолютно безлимитный)
@Midjourney_bot (лимит 47 генераций в день)
@X.AI_bot - стремительно набирает хайп. Новая нейросеть от Илона Маска. Славится тем, что у неё присутствует сознание!(бета-версия)
@DALL-E-2_bot
🎯Пользуемся:
@Stable_Diffusion_bot - способен раздеть твою подругу в 5 кликов за 1 минуту. Напрочь отсутствует цензура.
@ChatGPT-4_bot (абсолютно безлимитный)
@Midjourney_bot (лимит 47 генераций в день)
@X.AI_bot - стремительно набирает хайп. Новая нейросеть от Илона Маска. Славится тем, что у неё присутствует сознание!(бета-версия)
@DALL-E-2_bot
🤡23💩2👍1
ChatGPT помогает взламывать программистов
Около 100 из 400 вопросов содержали ссылки на уже несуществующие пакеты Python или Node.js, которые злоумышленники могут зарегистрировать и использовать в своих целях.
Специалисты показали как такая схема будет работать на практике. Программисты, задающие похожие вопросы, могут установить вирус и при этом ничего не подозревать.
#офтоп
Около 100 из 400 вопросов содержали ссылки на уже несуществующие пакеты Python или Node.js, которые злоумышленники могут зарегистрировать и использовать в своих целях.
Специалисты показали как такая схема будет работать на практике. Программисты, задающие похожие вопросы, могут установить вирус и при этом ничего не подозревать.
#офтоп
❤1