Создание и использование виртуальной среды
Создание новой виртуальной среды требуется только один раз для каждого проекта, для которого вы хотите изолировать зависимости:
Чтобы активировать виртуальную среду, нужно запустить
#virtualenv
virtualenv — инструмент для создания изолированных сред Python. Программа создает папку, которая содержит все необходимые исполняемые файлы для использования пакетов, необходимых для проекта.Создание новой виртуальной среды требуется только один раз для каждого проекта, для которого вы хотите изолировать зависимости:
python3 -m venv venv
Это создаст папку venv, содержащую оснастку сценариев и копию python самого двоичного файла. Название папки не имеет значения. Чтобы активировать виртуальную среду, нужно запустить
activate файл: source venv/bin/activate и далее мы можем свободно устанавливать любые зависимости, которые никак не скажутся на работе в будущих проектах.#virtualenv
👍4
Использование аннотаций типов в Python
Python, язык с динамической типизацией, позволяет работать с переменными различных типов. Иногда это может привести к ошибкам из-за неправильного использования типов .
Начиная с версии 3.6, Python поддерживает аннотации типов для переменных, атрибутов классов, аргументов функций и их возвращаемых значений, что помогает улучшить читаемость кода и предотвратить ошибки, связанные с типами данных.
#python #typing
Python, язык с динамической типизацией, позволяет работать с переменными различных типов. Иногда это может привести к ошибкам из-за неправильного использования типов .
Начиная с версии 3.6, Python поддерживает аннотации типов для переменных, атрибутов классов, аргументов функций и их возвращаемых значений, что помогает улучшить читаемость кода и предотвратить ошибки, связанные с типами данных.
#python #typing
❤4👍1
Применяем pathlib взамен os
В Python 3 стандартная библиотека включает модуль
Одно из наиболее впечатляющих преимуществ использования
В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
#path #os
В Python 3 стандартная библиотека включает модуль
pathlib, предоставляющий функцию Path, которая обеспечивает все необходимое для эффективной работы с путями к файлам.Одно из наиболее впечатляющих преимуществ использования
pathlib - это упрощение работы с путями за счет использования Path вместо os.path.join, представляя более простой и изящный метод, как показано на изображении.В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
os, таким как os.mkdir или os.path, на более удобные альтернативы.#path #os
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
В примере мы проверяем, есть ли значение у атрибута
То есть при вызове конструктора класса
#классы #паттерны
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
__new__ вызывается для создания экземпляра класса, перед вызовом __init__. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).В примере мы проверяем, есть ли значение у атрибута
instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.То есть при вызове конструктора класса
Singleton, будет возвращаться один и тот же объект из памяти.#классы #паттерны
👍5❤1
Explicit Conversion Flag
Флаг явного преобразования используется для преобразования значения поля
Это поле можно использовать для переопределения поведения
В примере, в случае с флагом
#repr #str #format
Флаг явного преобразования используется для преобразования значения поля
format перед его непосредственным форматированием.Это поле можно использовать для переопределения поведения
format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:!r – преобразует значение в строку, используя функцию repr()!s – преобразует значение в строку, используя функцию str()В примере, в случае с флагом
!r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s – без кавычек (в более удобном для чтения виде).#repr #str #format
❤2
Удаление префиксов и суффиксов
По какой-то неизведанной причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.
Некоторые на полном серьезе для таких целей до сих пор пытаются использовать забагованные
И всё же, в Python 3.9 были добавлены методы для строк
#строки
По какой-то неизведанной причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.
Некоторые на полном серьезе для таких целей до сих пор пытаются использовать забагованные
.strip и .lsrtip. Точнее, большинство просто не до конца понимают, как работают эти два метода.И всё же, в Python 3.9 были добавлены методы для строк
.removeprefix и .removesuffix, предназначенные специально для удаления префиксов и суффиксов в строках.#строки