Знаете, как работает словарь?
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#theory // Just Python
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
__hash__. Это str, tuple, frozenset и другие неизменяемые объекты.После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#theory // Just Python
Перемещение файлов в Python
Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль
Функция
В случае успеха, функция вернёт новое местоположение файла. Если
#theory // Just Python
Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль
shutil. Функция
shutil.move(source, destination) позволяет вам переместить любой файл или папку (даже непустую). Обратите внимание, что если destination — это уже существующая папка, то файл/папка будет перемещена внутрь неё, в остальных случаях файл/папка будут скопированы точно по нужному адресу. В случае успеха, функция вернёт новое местоположение файла. Если
destination существует и не является папкой, то будет выброшена ошибка.#theory // Just Python
Я знаю что так будет, но почему?
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#theory // Just Python
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
func.__defaults__.Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#theory // Just Python
Интерфейс командной строки
Самостоятельный парсинг аргументов даже с argparse вызывает трудности. Чтобы их избежать, стоит установить typer.
Установка:
Библиотека сама создаст usage и --help сообщения на основе документации используемых функций или переданных аргументов.
📌 Документация
#theory // Just Python
Самостоятельный парсинг аргументов даже с argparse вызывает трудности. Чтобы их избежать, стоит установить typer.
Установка:
pip install typer
Это — интуинтивно понятный модуль для создания FAST API интерфейсов командой строки. Проще говоря, вы сможете создавать команды по типу git branch -b main.Библиотека сама создаст usage и --help сообщения на основе документации используемых функций или переданных аргументов.
📌 Документация
#theory // Just Python
VSCode в браузере
Если у вас слабый пк или просто лень скачивать IDE на свой пк, то можете запустить его в браузере.
Он поддерживает почти все функции десктопного редактора, так ещё может подключаться к git репозиторию и править там (если есть доступ).
Единственный недостаток — расширения. Они доступны, но с серьёзными ограничениями. Python работает, уже хорошо.
Ссылка на сайт
#tools // Just Python
Если у вас слабый пк или просто лень скачивать IDE на свой пк, то можете запустить его в браузере.
Он поддерживает почти все функции десктопного редактора, так ещё может подключаться к git репозиторию и править там (если есть доступ).
Единственный недостаток — расширения. Они доступны, но с серьёзными ограничениями. Python работает, уже хорошо.
Ссылка на сайт
#tools // Just Python
raise ... from
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
__clause__.Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Zoneinfo
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#theory // Just Python
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#theory // Just Python
tomllib
Это новая встроенная в Python библиотека для работы с TOML конфигурационными файлами.
#theory // Just Python
Это новая встроенная в Python библиотека для работы с TOML конфигурационными файлами.
#theory // Just Python
Оператор преобразования raise ... from
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
__clause__.Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Модуль временных зон
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#modules // Just Python
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#modules // Just Python
Python кэширует все импортированные модули в sys.modules
Это сделано ради оптимизации, чтобы каждый раз не выполнять модуль, а один раз его вытащить и использовать в проекте.
Чтобы его намеренно выполнить снова, воспользуйтесь
#theory // Just Python
Это сделано ради оптимизации, чтобы каждый раз не выполнять модуль, а один раз его вытащить и использовать в проекте.
Чтобы его намеренно выполнить снова, воспользуйтесь
importlib.reload(), но будьте осторожны, ведь это пересоздаст все объекты и создаст ошибки, которые сложно найти.#theory // Just Python
ParamSpec
Это специальный тип для спецификации параметров.
Он часто используется с декораторами, когда мы не знаем какие параметры будет получать декорируемая функция и не можем заранее их задать.
Так мы можем получать подсказки по декорируемой функции, которых бы не было без ParamSpec.
Добавлено в Python 3.10.
#theory // Just Python
Это специальный тип для спецификации параметров.
Он часто используется с декораторами, когда мы не знаем какие параметры будет получать декорируемая функция и не можем заранее их задать.
Так мы можем получать подсказки по декорируемой функции, которых бы не было без ParamSpec.
Добавлено в Python 3.10.
#theory // Just Python
Что такое аннотация типов?
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#theory // Just Python
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#theory // Just Python
Что такое дескрипторы?
Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.
Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.
#theory // Just Python
Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.
Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.
#theory // Just Python
Гуглим с помощью Python
Установка необходимых пакетов — pip install beautifulsoup4 и pip install google.
В нашем примере мы задаем в поиске слово "Python" и получаем ссылки на 3 самых популярных по мнению Google сайтов о Python.
#theory // Just Python
Установка необходимых пакетов — pip install beautifulsoup4 и pip install google.
В нашем примере мы задаем в поиске слово "Python" и получаем ссылки на 3 самых популярных по мнению Google сайтов о Python.
#theory // Just Python
getopt
Сам по себе getopt крайне схож по работе с функцией getopt() для анализа параметров командной строки. Модуль полезен при анализе аргументов командной строки, где мы хотим, чтобы пользователь также вводил некоторые параметры. Давайте посмотрим на простой пример, чтобы понять это.
#theory // Just Python
Сам по себе getopt крайне схож по работе с функцией getopt() для анализа параметров командной строки. Модуль полезен при анализе аргументов командной строки, где мы хотим, чтобы пользователь также вводил некоторые параметры. Давайте посмотрим на простой пример, чтобы понять это.
#theory // Just Python
Что такое распаковка кортежа?
Распаковка кортежа — это процесс извлечения отдельных элементов из кортежа и присвоения их переменным. Кортеж представляет собой упорядоченную коллекцию элементов, которые могут быть различных типов. Распаковка позволяет удобно извлекать значения из кортежа и использовать их отдельно.
Распаковка кортежей может быть полезным при работе с функциями, возвращающими несколько значений, а также для обмена значениями переменных без необходимости использовать дополнительные временные переменные.
#theory // Just Python
Распаковка кортежа — это процесс извлечения отдельных элементов из кортежа и присвоения их переменным. Кортеж представляет собой упорядоченную коллекцию элементов, которые могут быть различных типов. Распаковка позволяет удобно извлекать значения из кортежа и использовать их отдельно.
Распаковка кортежей может быть полезным при работе с функциями, возвращающими несколько значений, а также для обмена значениями переменных без необходимости использовать дополнительные временные переменные.
#theory // Just Python
whylogs
whylogs — это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.
Она используется для того, чтобы:
— Отслеживать статистику и метрики моделей и данных в режиме реального времени.
— Выявлять дрейф данных - изменения в распределении данных со временем.
— Собирать примеры исключений и выбросов.
— Проводить аудит моделей и данных в поисках проблем.
— Генерировать автоматические отчёты и визуализации.
— Интегрировать с MLflow, TensorBoard и другими инструментами.
#theory // Just Python
whylogs — это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.
Она используется для того, чтобы:
— Отслеживать статистику и метрики моделей и данных в режиме реального времени.
— Выявлять дрейф данных - изменения в распределении данных со временем.
— Собирать примеры исключений и выбросов.
— Проводить аудит моделей и данных в поисках проблем.
— Генерировать автоматические отчёты и визуализации.
— Интегрировать с MLflow, TensorBoard и другими инструментами.
#theory // Just Python
HTTP-запросы с использованием Aiohttp в Python 3
Если вы опытный программист на Python, то наверняка слышали о GIL или Global Interpreter Lock. Эта блокировка защищает доступ к объектам Python таким образом, что только один поток может одновременно выполнять байткод.....
#theory // Just Python
Если вы опытный программист на Python, то наверняка слышали о GIL или Global Interpreter Lock. Эта блокировка защищает доступ к объектам Python таким образом, что только один поток может одновременно выполнять байткод.....
#theory // Just Python
string.strip
Метод strip() возвращает копию строки, удаляя как начальные, так и конечные символы (в зависимости от переданного строкового аргумента). Если аргумент chars не указан, все начальные и конечные пробелы удаляются из строки.
#theory // Just Python
Метод strip() возвращает копию строки, удаляя как начальные, так и конечные символы (в зависимости от переданного строкового аргумента). Если аргумент chars не указан, все начальные и конечные пробелы удаляются из строки.
#theory // Just Python