Всем привет
Разбираюсь с 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']
и все сработает без ошибок.
Помогите разобраться, пожалуйста