3 ошибки при работе с dataclasses в Python

Dataclasses появились в Python 3.7 и быстро стали стандартом: меньше бойлерплейта, чем у обычных классов, проще, чем attrs, и не требуют зависимостей. Выглядят настолько просто, что кажется, что ломаться там нечему. Но у них есть три ловушки, которые не видны при написании. Разобрать ошибки

https://habr.com/ru/companies/otus/articles/1034394/

#python #типизация_Python #наследование_классов #dataclasses #mypy #ошибки_python

3 ошибки при работе с dataclasses в Python

Dataclasses появились в Python 3.7 и быстро стали стандартом: меньше бойлерплейта, чем у обычных классов, проще, чем attrs, и не требуют зависимостей. Выглядят настолько просто, что кажется, что...

Хабр

novo post no blog: dataclass, NamedTuple, attrs ou pydantic — qual usar de verdade?

quatro formas sérias de estruturar dados em Python, cada uma com trade-offs que a documentação oficial não deixa claro. quando cada uma faz sentido, quando atrapalha, e o padrão borda/domínio que evita coerção silenciosa no lugar errado.

🔗 https://www.riverfount.dev.br/posts/cover-dataclass_namedtuple_attrs_pydantic./

#python #pydantic #dataclasses #boas-práticas

dataclass, NamedTuple, attrs ou pydantic: qual usar de verdade?

Existe um ponto no crescimento de qualquer projeto Python em que os dicionários começam a doer. Não de vez — vai acontecendo aos poucos. Você passa um dict para uma função, a função passa para outra, e em algum momento ninguém mais sabe ao certo quais chaves estão garantidas, qual é o tipo de cada valor, ou o que acontece se uma chave estiver faltando. 1 2 3 4 def calcular_desconto(pedido: dict) -> float: # pedido tem "valor"? "valor_bruto"? "subtotal"? # "cliente" é um dict também? tem "nivel"? return pedido["valor"] * _fator(pedido["cliente"]["nivel"]) Funciona. Ninguém vai questionar em code review. O problema aparece três meses depois, quando alguém passa um pedido sem a chave "nivel" — ou quando você tenta debugar e o repr do dicionário tem quarenta chaves misturadas.

Blog do Riverfount

unihttp – пишем декларативные API-клиенты на Python

Привет! Хочу представить вам свою библиотеку – unihttp . Уверен, что все сталкивались с необходимостью работы с какими-либо API, но что делать, если у этого сервиса (внешнего или внутреннего) отсутствует библиотека, позволяющая лаконично вызывать нужные методы?

https://habr.com/ru/articles/992844/

#python #opensource #api #rest #pydantic #adaptix #dataclasses

unihttp – пишем декларативные API-клиенты на Python

Привет! Хочу представить вам свою библиотеку – unihttp . Уверен, что все сталкивались с необходимостью работы с какими-либо API, но что делать, если у этого сервиса (внешнего или внутреннего)...

Хабр

🚀 Atenção, devs Python! 🚀

Você já ouviu falar em *Primitive Obsession*? É aquele code smell que vira pesadelo quando usamos só *primitivos* (strings, dicts, listas) para modelar dados complexos num sistema. A boa notícia: existe uma saída poderosa e elegante! 💥

No artigo fresquinho *"Primitive Obsession no Python: Refatorando com Dataclasses para Value Objects Robustos"*, inspirado na incrível Live de Python #150 do Eduardo Mendes, você vai descobrir como as **dataclasses** podem revolucionar seu código!

✨ Imagine ter:
- Abstrações de domínio ricas, tipadas e imutáveis
- Código mais seguro e testável, sem KeyError ou lógica espalhada
- Menos boilerplate e alta legibilidade
- Validações incorporadas e comportamento encapsulado
- Facilidade para escalar e evoluir sistemas com menos bugs

Este é o caminho para sair da armadilha dos primitivos e dominar Value Objects com Python moderno! 🚀👩‍💻👨‍💻

🙌 Não perca tempo! Leia o artigo completo e transforme sua maneira de pensar software:

👉 https://bolha.blog/riverfount/primitive-obsession-no-python-refatorando-com-dataclasses-para-value-objects

#Python #Dev #Dataclasses #CleanCode #TechDebt #DDD #PrimitiveObsession #EduardoMendes #LivePython #SoftwareEngineering

Primitive Obsession no Python: Refatorando com Dataclasses para Value Objects Robustos

Baseado na Live de Python #150 do canal Eduardo Mendes no YouTube, este artigo explora de maneira prática e direta a "primitive obsession...

Riverfount

Pydantic V2: Почему dataclasses вам больше не нужны

Вы пишите age: int, а Python спокойно пропускает туда строку. Программа падает, но не сразу, а в самый неподходящий момент. Я расскажу, почему пора переходить на Pydantic V2. Он теперь работает на Rust (очень быстро), сам исправляет типы и спасает от глупых ошибок. Внутри: сравнение кода, работа с .env и немного практики.

https://habr.com/ru/articles/970338/

#pydantic #pydantic_v2 #python3 #python_для_начинающих #dataclasses

Pydantic V2: Почему dataclasses вам больше не нужны

Введение: Иллюзия надежности данных Появление dataclasses значительно упростило жизнь Python-разработчикам: меньше шаблонного кода, выше читаемость. Однако есть критический нюанс, который часто...

Хабр

Полезные конструкции Python, которые упростят работу с данными

Даже без сторонних библиотек в языке есть много встроенных инструментов, которые помогают лаконично обрабатывать данные, писать читаемый код и избегать лишних проверок и циклов. В этой статье мы собрали конструкции, которые пригодятся как начинающим, так и более опытным разработчикам.

https://habr.com/ru/companies/netologyru/articles/940890/

#python #enumerate #генерация_списков #фильтрация_данных #тернарный_оператор #lambda #yield #множества #kwargs #dataclasses

Полезные конструкции Python, которые упростят работу с данными

Даже без сторонних библиотек в языке есть много встроенных инструментов, которые помогают лаконично обрабатывать данные, писать читаемый код и избегать лишних проверок и циклов.  В этой статье мы...

Хабр

Msgspec vs DataClasses: битва инструментов в мире Python-сериализации

Хабрчане, привет! Это Леша Жиряков из МТС Диджитал. Недавно я писал про FastAPI vs Litestar и Polars vs Pandas , а сегодня разберем два популярных инструмента — Msgspec и DataClasses. Оба помогают структурировать данные, добавить энтерпрайзности в проект, но подходы у них разные. Какой из них быстрее и удобнее, где их лучше применять? Давайте разбираться.

https://habr.com/ru/companies/ru_mts/articles/881514/

#программирование #python #Msgspec #dataclasses #работа_с_данными #сериализация

Msgspec vs DataClasses: битва инструментов в мире Python-сериализации

Хабрчане, привет! Это Леша Жиряков из МТС Диджитал. Недавно я писал про FastAPI vs Litestar и  Polars vs Pandas , а сегодня разберем два популярных инструмента — Msgspec и DataClasses. Оба...

Хабр

#python question for the experts out there - why shouldn't I almost always use #dataclasses , along with `__post__init__`?

Details:
python dataclasses: https://docs.python.org/3/library/dataclasses.html seem very convenient.

Most classes I use in my personal projects have the pattern: `self.blah = blah` where blah is each parameter passed in `__init__`.

Having a `__post_init__` option makes post member assignment very natural.

I'm very tempted to use the `@dataclass` decorator for almost every class I write.

dataclasses — Data Classes

Source code: Lib/dataclasses.py This module provides a decorator and functions for automatically adding generated special methods such as__init__() and__repr__() to user-defined classes. It was ori...

Python documentation
Sarfraaz Ahmed's Trainings - My Voyage of Discovery

MyVoD ( My Voyage of Discovery ) is a newsletter where I plan to share my discoveries with you while I tread on the path of self development and life itself. I hope this will encourage you to

sad that #python #dataclasses are to be avoided if one wants to have good cold start time for tools