3

可変フィールド (リスト) を持つデータクラスがあります。私が達成したいのは、__init__ 呼び出しで明示的に None に設定されている場合でも、このフィールドが None にならないことです。通常のクラスでは、これを実装するのは簡単です。

class A:
    def __init__(self, l: Optional[List[int]] = None):
        if l is None:
            l = []
        self.l = l

dataclasses.field関数だけで、つまり __init__ メソッドを明示的に実装せずに同じ結果を得る方法はありますか (クラスに多くの属性がある場合は面倒です)。default_factory指定された init 引数が None の場合、dataclasses.field を強制的に呼び出すことはできますか?

4

2 に答える 2