问题描述
以下代码用于向用户发送消息:
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")
1楼
您想到的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"]))
2楼
由于send_message
总是将'\\n\\r'
到您传递给它的任何message
,您可以调用_attempt_send
代替:
mud._attempt_send(id, rooms[self.current_room]["desc"] + " ")