我有两种方法:
async def broadcast(self, message: WebSocketMessage):
for web_socket in self._websockets:
await web_socket.send(json.dumps(message.as_dict()))
async def broadcast_all(self, messages: List[WebSocketMessage]):
dumped_messages = json.dumps([msg.as_dict() for msg in messages])
for web_socket in self._websockets:
await web_socket.send(dumped_messages)
我只想有一个方法可以作为参数WebSocketMessage
或List[WebSocketMessage]
。如果它不是List
,则将其强制转换为list,并执行与broadcast_all
相同的操作。你知道吗
做这种预处理最好的方法是什么?你知道吗
我就是这么做的:
async def broadcast_all(self, messages: object):
if not isinstance(messages, list):
messages = list(messages)
dumped_messages = json.dumps([msg.as_dict() for msg in messages])
for web_socket in self._websockets:
await web_socket.send(dumped_messages)
这样做好吗?你知道吗
你很接近,但[信息]并不像你想象的那样。该语句将返回一个列表,其中包含作为第一个元素存储在消息中的任何对象。你知道吗
相反,您应该只使用内置list()进行类型转换。你知道吗
相关问题 更多 >
编程相关推荐