Используя Python 3, у меня есть консольное приложение, которое я переношу в графический интерфейс. Код имеет кучу заявлений печати, что-то вроде этого:python3 print to string
print(' ', 'p', ' ', sep='', end='')
(В действительности позиционные параметры фактически возвращается из функций, и может быть больше или меньше, чем 3, как это:
print(f1(), f2(), f3(), sep='', end='')
Я хотел бы преобразовать эти вызовы в нечто вроде:
GuiPrintLine(' ', 'p', ' ', sep='', end='')
, где каждая строка в конечном итоге отображается с использованием графического интерфейса.
Это легко сделать, если я могу преобразовать аргументы в строку. Я хотел бы, чтобы форматировать список параметров в виде одной строки, что печать будет нормально выход с чем-то вроде этого:
def GuiPrintLine(*args, **kwargs):
s = text.format(*args, **kwargs)
# ... then display the string on the gui ...
Однако это требует формат строки (текст). Есть ли простой способ сделать это, который автоматически производит тот же вывод, что и функция печати? Я понимаю, что могу эмулировать печать, объединяя все аргументы с sep и концами, но я бы предпочел использовать встроенное решение, если оно есть.
Использование печати и перенаправления sysout не привлекательно, так как требует изменения глобального состояния приложения, а sysout может использоваться для других диагностических операций одновременно.
Кажется, что это должно быть тривиально в Python, так что, возможно, я просто пропустил что-то очевидное.
Спасибо за помощь!
Я не совсем уверен, что понимаю 100%, но «.join (args)» достигает того, что вам нужно? – DaveBensonPhillips
Сортировка, но я не хочу ничего говорить о содержании или существовании sep/end. Я думал, что что-то вроде этого может работать: '' 'kwargs ['sep']. Join (* args, kwargs [end])' '', но это осложняется рассмотрением возможного отсутствия sep/end. – Brad
Какая разница между 'print' и' GuiPrintLine'? – baranskistad