当前位置: 代码迷 >> python >> 在函数调用中使用 end=" " 时出错
  详细解决方案

在函数调用中使用 end=" " 时出错

热度:24   发布时间:2023-07-14 09:52:33.0

以下代码用于向用户发送消息:

mud.send_message(id, rooms[self.current_room]["desc"])

在游戏代码的一部分中,我不想从新行开始,所以我尝试:

mud.send_message(id, rooms[self.current_room]["desc"], end=" ")
mud.send_message(id, "This starts on the same line as the code above.")

这当然会引发一个错误,即这里不欢迎第三个变量 (end="")。 如何在同一行开始第二条消息?

如果需要,额外的信息:

def send_message(self, to, message):
    self._attempt_send(to, message+"\n\r")

您想到的end参数特定于内置print功能; 其他的事情,输出文本不一定会支持它。

如果send_message是您自己的代码,那么您可以修改它以不自动添加换行符 - 甚至实现end参数(如果需要,我可以添加详细信息)。

如果send_message在其他人的库中,那么通常您应该先检查该库的文档并查看推荐的内容。

但是,对于像这个这样简单的情况,显而易见的事情就是准备一行文本用于输出,因此只进行一次send_message调用。

例如,您可以使用字符串格式执行此操作:

# Python 3.6 and later
mud.send_message(id, f'{rooms[self.current_room]["desc"]} This is on the same line.')
# Earlier 3.x, before the introduction of f-strings
mud.send_message(id, '{} This is on the same line.'.format(rooms[self.current_room]["desc"]))

由于send_message总是将'\\n\\r'到您传递给它的任何message ,您可以调用_attempt_send代替:

mud._attempt_send(id, rooms[self.current_room]["desc"] + " ")
  相关解决方案