@mdev

Как работает @dataclass?

Всем привет

Разбираюсь с dataclasses. Пример из документации у меня не работает.
from dataclasses import dataclass, field
from typing import List
@dataclass
class C:
    mylist: List[int] = field(default_factory=list)


c = C()
c.mylist += [1, 2, 3]

Ошибка:
TypeError: unsupported operand type(s) for +=: 'Field' and 'list'

Вопросы:
1. Почему происходит ошибка?
2. Если можно поясните своими словами суть происходящего внутри класса.

Если я правильно понимаю, то mylist это объект класса List для хранения значений "int".
Если я создаю mylist простым вариантом:
mylist: List[int] = []
то этот пример работает.

И опять же непонятно назначение [int] т.к. я потом могу сделать
c.mylist += ['a','b']
и все сработает без ошибок.
Помогите разобраться, пожалуйста
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы