🧩 Dataclass и NamedTuple: почему атрибуты выглядят странно
Если вы впервые видите такой код:
или
— возникает логичный вопрос: почему строки внутри класса выглядят как class attributes, но становятся instance attributes?
✔️ Ответ прост: это не атрибуты — это type annotations.
Они не создают переменные, а просто записываются в
А дальше:
– dataclass генерирует атрибуты и превращает эти поля в атрибуты экземпляра;
– NamedTuple делает то же самое, создавая неизменяемые объекты.
Даже если вы пишете:
— это выглядит как class attribute, но в dataclass это всего лишь default значение для instance attribute.
➡️ Магии нет — есть автогенерация кода на основе аннотаций.
🔗 Подробнее
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека питониста
#буст
Если вы впервые видите такой код:
@dataclass
class Person:
name: str
age: int
или
class Person(NamedTuple):
name: str
age: int
— возникает логичный вопрос: почему строки внутри класса выглядят как class attributes, но становятся instance attributes?
Они не создают переменные, а просто записываются в
__annotations__.А дальше:
– dataclass генерирует атрибуты и превращает эти поля в атрибуты экземпляра;
– NamedTuple делает то же самое, создавая неизменяемые объекты.
Даже если вы пишете:
profession: str = "Python Programmer"
— это выглядит как class attribute, но в dataclass это всего лишь default значение для instance attribute.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Forwarded from Библиотека задач по Data Science | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Data Science | тесты, код, задания
❤1