当属性名与使用类型的类名匹配时,为什么会引发TypeError?

2024-05-15 11:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

无法初始化与列表元素的类同名的dataclass列表属性。你知道吗

属性名更改后,初始化工作正常。我对Pydantic类也有同样的问题。你知道吗

from dataclasses import dataclass, field
from typing import List

@dataclass
class Thing:
    name: str

@dataclass
class MyClass:
    Thing: List[Thing] = field(default_factory=list)

c = MyClass()

这会产生以下错误:

TypeError: Parameters to generic types must be types. Got Field(name=None,type=None,default=<dataclasses._MISSING_TYPE object at 0x00000201CA208518>,default_f.

当我改变时:

    Thing: List[Thing] = field(default_factory=list)

收件人:

    thing: List[Thing] = field(default_factory=list)

未引发TypeError。你知道吗


Tags: namefromimportdefaultfield列表属性factory