TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.2K subscribers
Post #7314 4.33K
🧩 Dataclass и NamedTuple: почему атрибуты выглядят странно

Если вы впервые видите такой код:

@dataclass
class Person:
name: str
age: int


или

class Person(NamedTuple):
name: str
age: int

— возникает логичный вопрос: почему строки внутри класса выглядят как class attributes, но становятся instance attributes?

✔️ Ответ прост: это не атрибуты — это type annotations.

Они не создают переменные, а просто записываются в __annotations__.

А дальше:
– dataclass генерирует атрибуты и превращает эти поля в атрибуты экземпляра;
– NamedTuple делает то же самое, создавая неизменяемые объекты.

Даже если вы пишете:

profession: str = "Python Programmer"

— это выглядит как class attribute, но в dataclass это всего лишь default значение для instance attribute.

➡️ Магии нет — есть автогенерация кода на основе аннотаций.

🔗 Подробнее

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека питониста

#буст
  • ❤ 5
  • 👍 2
More from @pyproglib
  1. Oct 7, 2026🎓 С Днём учителя! Учиться никогда не поздно — особенно когда технологии меняются быстрее,…
  2. Oct 3, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  3. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  4. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  5. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  6. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →