как отобразить строку документации Unicode, вызвав help () в режиме ожидания

Когда функция определена в Python, тройные кавычки представляют строку документации.
Но азиатские символы, используемые в строке документации, неправильно отображаются в IDLE для MacOS. Они отображаются в виде строки Unicode, например '\ uc778 \ uc0ac \ ud569 \ ub2c8 \ ub2e4'.
В Windows или Linux они отображаются правильно. Однако в оболочке терминала в MacOS строка документации, состоящая из азиатских символов, отображается правильно. Что за он **.
Думаю, в tcl / tk есть ошибка. Что мне делать, чтобы представить азиатские строки для документации? Я программирую на Python 3.6.3.
Спасибо всем.


person albert    schedule 26.11.2017    source источник
comment
Тройные кавычки нужны только для многострочных строк документации. Помимо этого, что вы видите при отображении строки документации? BMP (\unnnn') chars should either display or be represented by a substitute char. In any case, this is controlled by tk interacting with the OS. What tcl/tk are you using? Help` = ›About IDLE покажет вам. Если вы используете двоичный файл python.exe с python.org, вам следует использовать последнюю версию 8.5.x tcl / tk, доступную на ActiveState. См. https://www.python.org/download/mac/tcltk/.   -  person Terry Jan Reedy    schedule 27.11.2017
comment
Спасибо, Терри. Я установил последнюю версию ActiveTcl. Но Python 3.6.3 не распознает Tcl / Tk. В режиме IDLE по-прежнему появляется следующее сообщение. ВНИМАНИЕ: используемая версия Tcl / Tk (8.5.9) может быть нестабильной. Посетите python.org/download/mac/tcltk для получения актуальной информации.   -  person albert    schedule 27.11.2017
comment
Все, что я могу сказать, это внимательно перечитать инструкции на странице выше о том, как Python находит tcl / tk. У меня нет Mac.   -  person Terry Jan Reedy    schedule 28.11.2017
comment
Спасибо. Но я говорю вам, что Python не может распознать последнюю версию Tcl ActiveState, 8.6.6, хотя она была установлена ​​правильно. Я вернул его к более старой версии 8.5.18. Так что проблема, о которой я сказал, остается нерешенной. В любом случае, еще раз спасибо.   -  person albert    schedule 28.11.2017
comment
Я сказал выше, что «вам следует использовать последнюю доступную версию 8.5.x tcl / tk», потому что python.org/download/mac/tcltk объясняет, что macOS будет связывать только python.exe, скомпилированный для 8.5, с 8.5. В Tcl / tk 8.6, по-видимому, есть несколько исправлений ошибок, особенно для maxOS, а Python 3.7.0 будет скомпилирован для использования (и требует) некоторых 8.6.x. Я не верю, что это правда для доступной на данный момент версии 3.7.0a2.   -  person Terry Jan Reedy    schedule 28.11.2017
comment
Еще раз спасибо. Я понял, что ты сказал. Думаю, в настоящее время обходного пути для этой ошибки нет.   -  person albert    schedule 29.11.2017


Ответы (1)


Посмотрим, можно ли использовать атрибут __doc__.

>>> def func(): 
        """ Return 인사합니다 """
        pass

>>> func.__doc__
' Return 인사합니다 '

Изменить. Я пробовал help(func) в Windows 10:

>>> help(func)
Help on function func in module __main__:

func()
    Return \uc778\uc0ac\ud569\ub2c8\ub2e4

Я мог бы напечатать его прямо с префиксом escape-символа u:

>>> print(u'\uc778\uc0ac\ud569\ub2c8\ub2e4')
인사합니다

Но у меня docstring как в Linux:

>>> help(func)
    Help on function func in module __main__:

    func()
        Return 인사합니다
person srikavineehari    schedule 26.11.2017
comment
Я получил правильное отображение строки для документа. У меня возникла проблема с отображением строки документации при вызове help () в MacOS IDLE. Я получил строку Unicode, например \ uxxxx, вместо азиатских символов. - person albert; 27.11.2017