Dataclass - как иметь изменяемый список в качестве поля - PullRequest
0 голосов
/ 29 января 2020

Я хочу использовать новый декоратор @dataclass в моем коде с атрибутом в качестве изменяемого списка. Нечто похожее на это

from dataclasses import dataclass

@dataclass
class Metrics
    accuracy: list = []
    loss: list = []

...

def do_stuff(data):
    m = Metrics()

    for i in range(0, 10):
        m.accuracy.append(accuracy_def(i))
        m.loss.append(loss_def(i))

    return m

Но у меня есть эта ошибка:

Ошибка типа: __init __ () отсутствует 2 обязательных позиционных аргумента: «точность» и «потеря»

1 Ответ

2 голосов
/ 29 января 2020

Используйте dataclasses.field() вместо

@dataclass
class Metrics:
    accuracy: List[int] = field(default_factory=list)
    loss: List[int] = field(default_factory=list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...