我有以下代码
from pydantic import BaseModel
class User(BaseModel):
id: int
name = "Jane Doe"
def add_user(user: User):
a = set()
a.add(user)
return a
add_user(User(id=1))
当我运行此程序时,出现以下错误:
TypeError: unhashable type: 'User'
有办法解决这个问题吗?
最佳答案
您只需为该类实现一个哈希函数即可。 您可以通过散列用户的 id 或名称并将其作为散列返回来轻松做到这一点...
像这样:
from pydantic import BaseModel
class User(BaseModel):
id: int
name = "Jane Doe"
def __hash__(self) -> int:
return self.name.__hash__() # or self.id.__hash__()
def add_user(user: User):
a = set()
a.add(user)
return a
add_user(User(id=1))
关于python - 尝试将 pydantic 模型添加到集合中会出现不可散列的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76143613/