我正在处理的 python 数据类的名称建议?



我需要向api发送消息。有两种不同类型的消息:创建或更新。创建消息将在数据库中创建一个条目。更新消息将更新数据库中的条目。

下面是我用来实现这些类的代码:
from abc import ABCMeta, abstractmethod
from dataclasses import asdict, dataclass
@dataclass
class Message(metaclass=ABCMeta):
message_type: str
def to_dict(self) -> dict:
return asdict(self)
@dataclass
class CreateMessage(Message):
message_id: str
message_status: str
@dataclass
class UpdateMessage(Message):
message_id: str
new_message_status: str

然而,我的同事说这些类的名字听起来更像一个函数。你们有什么建议吗我可以给UpdateMessage和CreateMessage类起个名字让它们不那么混乱?他建议UpdateMessageDto和CreateMessageDto,但我担心其他人不知道Dto是什么。

我同意CreateMessage,例如,它似乎将作为一个函数执行。如果可能的话,我建议确保名称使用名词,因为类通常是包含数据的对象,这使得它们与通常与动词相关联的函数明显不同,例如create_message

我建议在模型类名称上添加Action之类的东西。另一种选择是更明确地添加一个名词,如Model。如果你发现包含"Message"变得有点多余,我还建议删除类的Message部分,例如让它像CreateModel一样,然后你可以把它放在一个叫做messages.py的模块中,这样from messages import CreateModel就会清楚地表明CreateModel是一个消息模型类。

下面的例子说明了我建议的一种可能的命名模式:
from __future__ import annotations
from abc import ABCMeta
from dataclasses import asdict, dataclass
from typing import Any

@dataclass
class Message(ABCMeta):
message_type: str
def to_dict(self) -> dict[str, Any]:
return asdict(self)

@dataclass
class CreateModel(Message):
message_id: str
message_status: str

@dataclass
class UpdateModel(Message):
message_id: str
new_message_status: str

相关内容

  • 没有找到相关文章

最新更新