【发布时间】:2023-02-10 02:54:49
【问题描述】:
我有一个简单的数据类(来自 pydantic)
from pydantic.dataclasses import dataclass
from abc import ABCMeta
from abc import abstractmethod
from pydantic.dataclasses import dataclass
@dataclass
class BaseEntity(metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, other: dict):
...
@abstractmethod
def dict(self):
...
@dataclass
class UserEntity(BaseEntity):
id: Optional[str]
name: str
email: str
avatar: str
@classmethod
def from_dict(cls, other: dict):
return cls(
id=other.get("id"),
name=other.get("name"),
email=other.get("email"),
avatar=other.get("avatar"),
)
当我运行 mypy 时,我得到了这组错误:
app/entities/user.py:25: 错误:“UserEntity”的意外关键字参数“id”[call-arg]
app/entities/user.py:25: 错误:“UserEntity”的意外关键字参数“name”[call-arg]
app/entities/user.py:25: 错误:“UserEntity”的意外关键字参数“email”[call-arg]
app/entities/user.py:25: 错误:“UserEntity”的意外关键字参数“avatar”[call-arg]
我做错了什么?代码很好;它运行。或者它是一个 mypy 错误?
$ mypy --version mypy 1.0.0 (compiled: yes)
【问题讨论】:
-
请提供不依赖于未指定模块
app.entities的minimal reproducible example。 -
我在最底部添加了一个 MRE
-
MRE 需要在问题本身
-
整个 github repo 不是 MRE——强调 M。
-
此外,一旦您在此处获得解决方案,您可能会修复 repo 中的错误,因此它对未来的问题读者没有用。