robyn | Ваш API будет самым быстрым
Если правильно организовать эксперимент, то и на вершину рейтинга производительности взобраться несложно. Фреймворк предлагает беспрецедентную производительность вашего будущего API засчет рантайма на Rust.
Среди фичей все самое «вкусное»:
— Поддерживает (а)синхронные функции;
— Самодокументирует ваш API;
— Позволяет создавать приложения с двусторонней связью (WebSocket);
— Интегрируется напрямую с кодом на Rust;
— Автоматически перезагружает сервер при изменении файлов (Hot Reload);
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
Если правильно организовать эксперимент, то и на вершину рейтинга производительности взобраться несложно. Фреймворк предлагает беспрецедентную производительность вашего будущего API засчет рантайма на Rust.
Среди фичей все самое «вкусное»:
— Поддерживает (а)синхронные функции;
— Самодокументирует ваш API;
— Позволяет создавать приложения с двусторонней связью (WebSocket);
— Интегрируется напрямую с кодом на Rust;
— Автоматически перезагружает сервер при изменении файлов (Hot Reload);
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
🤔2🆒1
enum: где обладает преимуществом
Встроенный модуль
Рассмотрим функцию, которая получает температуру в заданном городе:
Значение параметра
Теперь функция может быть вызвана так:
Это обеспечивает автодополнение в IDE, предотвращает опечатки и делает код более самодокументируемым.
Когда конкретные значения не имеют значения, можно использовать
В этом случае значения будут автоматически присвоены в порядке определения.
Модуль
— IntEnum: Подкласс
— Flag / IntFlag: Позволяют комбинировать значения с помощью побитовых операций, что полезно для представления множественных состояний.
В нем также представлены дополнительные инструменты для работы с перечислениями:
— EnumCheck: Позволяет проверять уникальность значений в перечислении;
— FlagBoundary: Управляет поведением при работе с недопустимыми значениями в перечислениях
— EnumDict: Подкласс
#основы
@zen_of_python
Встроенный модуль
enum
предоставляет удобный способ создания перечислений — наборов именованных констант, которые облегчают работу с фиксированными наборами значений. Это особенно полезно, когда необходимо ограничить возможные значения переменной определенным списком.Рассмотрим функцию, которая получает температуру в заданном городе:
def get_temperature(city, unit):
...
Значение параметра
unit
может быть либо "celsius"
, либо "fahrenheit"
. Однако использование строковых литералов может привести к ошибкам из-за опечаток или несогласованности в написании. Чтобы избежать этого, можно использовать перечисление:
from enum import Enum
class TempUnit(Enum):
CELSIUS = "celsius"
FAHRENHEIT = "fahrenheit"
Теперь функция может быть вызвана так:
get_temperature("Lisbon", TempUnit.CELSIUS)
Это обеспечивает автодополнение в IDE, предотвращает опечатки и делает код более самодокументируемым.
Когда конкретные значения не имеют значения, можно использовать
auto
для автоматического присвоения значений:
from enum import Enum, auto
class Weekday(Enum):
MONDAY = auto()
TUESDAY = auto()
WEDNESDAY = auto()
В этом случае значения будут автоматически присвоены в порядке определения.
Модуль
enum
также предоставляет специализированные классы перечислений:— IntEnum: Подкласс
int
, позволяющий использовать перечисления в арифметических операциях;— Flag / IntFlag: Позволяют комбинировать значения с помощью побитовых операций, что полезно для представления множественных состояний.
В нем также представлены дополнительные инструменты для работы с перечислениями:
— EnumCheck: Позволяет проверять уникальность значений в перечислении;
— FlagBoundary: Управляет поведением при работе с недопустимыми значениями в перечислениях
Flag
;— EnumDict: Подкласс
dict
, используемый при создании метаклассов перечислений.#основы
@zen_of_python
Telegram
Zen of Python
Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL
👍4❤1👎1
Forwarded from Метод утёнка
Это оберег от новых задач между майскими. Вы знаете, кому его отправить.
👍9❤3😁1
Майские праздники в этом году как генератор в Python — вроде начались, но сейчас только
#кек
@zen_of_python
yield
, return
ещё не было.#кек
@zen_of_python
😁7👍5❤1
😁22✍3🤪1🗿1🦄1
На случай, если вы все еще бухаете морально не готовы вернуться к работе, на GitHub бесплатно дают кодить с целым букетом LLM:
— ChatGPT
— DeepSeek
— Mistral
— MIcrosoft Phi и проч.
Выставил такого ИИ-работника вместо себя в начале недели — и никто не поймет подмены.
#инструмент
@zen_of_python
— ChatGPT
— DeepSeek
— Mistral
— MIcrosoft Phi и проч.
Выставил такого ИИ-работника вместо себя в начале недели — и никто не поймет подмены.
#инструмент
@zen_of_python
😁1👌1🌚1
Держите питонический амулет. Он защитит вас завтра от груженых понедельников, и коллег с «домайскими» отложенными задачами.
#кек
@zen_of_python
#кек
@zen_of_python
👍5👎1😁1
Солидный апдейт pip
Среди новшеств версии 25.1:
— Группы зависимостей: Теперь можно устанавливать «пачками», определёнными в
— Возобновляемые загрузки: прерванные из-за нестабильного интернета загрузки все же выполнятся;
— Индикатор прогресса установки;
— Ускорение
— Улучшенные сообщения об ошибках: Сообщения об ошибках при удалении пакетов стали более информативными.
Release Note
#инструмент
@zen_of_python
Среди новшеств версии 25.1:
— Группы зависимостей: Теперь можно устанавливать «пачками», определёнными в
pyproject.toml
. Это позволяет устанавливать, например, только зависимости для тестирования или разработки:pip install --group test
— Возобновляемые загрузки: прерванные из-за нестабильного интернета загрузки все же выполнятся;
— Индикатор прогресса установки;
— Ускорение
pip show
, pip freeze
на 15–30%;— Улучшенные сообщения об ошибках: Сообщения об ошибках при удалении пакетов стали более информативными.
Release Note
#инструмент
@zen_of_python
👍6
GlyphX | Старший брат Matplotlib
Альтернатива общепринятому инструменту визуализации, glyphx предлагает:
— SVG-рендеринг;
— интерактивность по умолчанию (как у plotly);
— палитры с темными темами и для людей с особенностями зрения.
Таргетировано на научные работы, где важна глубокая кастомизация и редкие типы диаграмм.
#инструмент
@zen_of_python
Альтернатива общепринятому инструменту визуализации, glyphx предлагает:
— SVG-рендеринг;
— интерактивность по умолчанию (как у plotly);
— палитры с темными темами и для людей с особенностями зрения.
Таргетировано на научные работы, где важна глубокая кастомизация и редкие типы диаграмм.
#инструмент
@zen_of_python
👍3❤1🌭1
Апгрейд Win-установочника Python
Разработчики языка оптимизируют процесс установки Python на Windows с помощью т.н. PyManager. Вот его ключевые обновления:
— Единый инструмент установки: Ранее существовало несколько способов установки Python на Windows: традиционный установщик
— Управление несколькими версиями: PyManager позволяет устанавливать и управлять несколькими версиями Python одновременно, включая возможность установки конкретных версий и архитектур (например,
PEP-773
#факт
@zen_of_python
Разработчики языка оптимизируют процесс установки Python на Windows с помощью т.н. PyManager. Вот его ключевые обновления:
— Единый инструмент установки: Ранее существовало несколько способов установки Python на Windows: традиционный установщик
.exe
, пакет в Microsoft Store и NuGet-пакеты. PyManager объединяет их в один инструмент, упрощая процесс установки и управления версиями Python.— Управление несколькими версиями: PyManager позволяет устанавливать и управлять несколькими версиями Python одновременно, включая возможность установки конкретных версий и архитектур (например,
py install 3.11.4 --arch=arm64
). Это особенно полезно для тестировщиков.PEP-773
#факт
@zen_of_python
👍2🆒1
В последний год вы использовали в своем коде __init__?
Anonymous Poll
66%
Да
13%
Нет
11%
Я не помню, что было на завтрак, а вы просите год назад вспомнить
9%
Хочу увидеть результат
Почему все реже встречается __init__
В питоническом комьюнити некоторые призывают отказаться от пользовательских методов
До Python 3.7 разработчикам приходилось вручную определять этот метод для инициализации атрибутов экземпляра класса. Например, чтобы создать объект
С появлением «структур данных» необходимость в ручном определении
Это не единственное решение: Создание объектов через фабричные методы позволяет (@classmethod) отделить логику инициализации от конструкции объекта.
Вот еще пример проблемы, вызванной пользовательским методом инициализации:
Атрибуты, инициализируемые в
#основы
@zen_of_python
В питоническом комьюнити некоторые призывают отказаться от пользовательских методов
__init__
в контексте dataclasses.До Python 3.7 разработчикам приходилось вручную определять этот метод для инициализации атрибутов экземпляра класса. Например, чтобы создать объект
2DCoordinate(x=1, y=2)
, необходимо было явно прописать метод __init__
с параметрами x
и y
. Альтернативы — фабричные функции и абстрактные классы, были менее удобны и приводили к усложнению кода.С появлением «структур данных» необходимость в ручном определении
__init__
для простых структур данных отпала:
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
person = Person(name="Alice", age=30)
print(person)
Это не единственное решение: Создание объектов через фабричные методы позволяет (@classmethod) отделить логику инициализации от конструкции объекта.
Вот еще пример проблемы, вызванной пользовательским методом инициализации:
class FooBarWidget(FooWidget):
def __init__(self):
self.publisher = zmq.Context.instance().socket(zmq.PUSH)
self._init()
def _init(self):
def worker_thread_start():
FooWidget.__init__(self)
self.run()
worker_thread = Thread(target=worker_thread_start, daemon=True)
worker_thread.start()
Атрибуты, инициализируемые в
FooWidget.__init__
, могут быть недоступны в основном потоке до завершения инициализации в дочернем потоке, что вызывает ошибки при обращении к ним.#основы
@zen_of_python
Telegram
Zen of Python
Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL
❤1👍1🌭1