У меня есть класс данных с изменяемым полем (списком). Я надеюсь достичь того, что это поле никогда не будет None, даже если явно установлено значение None в вызове __init__. В обычном классе это было бы тривиально реализовать:
class A:
def __init__(self, l: Optional[List[int]] = None):
if l is None:
l = []
self.l = l
Есть ли способ достичь того же результата, используя только dataclasses.field, т.е. без явной реализации метода __init__ (что было бы громоздко, если у класса много атрибутов)? Могу ли я заставить dataclasses.field вызывать его default_factory
, если предоставленный аргумент инициализации равен None?
default_factory
. - person gmolau   schedule 25.04.2019