Следующий код работает для отправки сообщения пользователю:
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
всегда send_message
'\n\r'
с любым _attempt_send
message
, вы можете вызвать _attempt_send
:
mud._attempt_send(id, rooms[self.current_room]["desc"] + " ")
_
в имени этого метода строго указывает на то, что он не предназначен для непосредственного вызова. (Кажется вероятным, что OP пошел изучать код сторонней библиотеки.)
end
параметр, почему бы вам не добавить его в функциюsend_message
и использовать его для управления добавлением\n\r
или нет?send_message
функцияsend_message
частью кода, который вы написали сами? Если нет, где вы взяли код и что написано в документации ?