我无法初始化数据类列表属性,该属性的名称与列表元素的类相同。
更改属性名称时,初始化工作正常。我在使用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。
答案 0 :(得分:0)
因为那样就覆盖了Thing
。
这就是thing
起作用的原因。