2017-11-26 7 views
0

関数がPythonで定義されている場合、三重引用符はdocstringを表します。
しかし、docstringで使用されているアジア文字は、IDLE for MacOSでは正しく表示されません。それらは '\ uc778 \ uc0ac \ ud569 \ ub2c8 \ ub2e4'のようなユニコード文字列として表示されます。
WindowsまたはLinuxでは、それらが正しく表示されます。しかし、MacOSのターミナルシェルでは、アジア文字で構成されたドキュメントストリングが正しく表示されます。彼は何?
私はtcl/tkにバグがあるかもしれないと思います。ドキュメンテーション文字列のアジア文字列を表現するにはどうすればよいですか?私はPython 3.6.3でプログラミングしています。
ありがとうございます。アイドル時にhelp()を呼び出すことでUnicodeのドキュメント文字列を表示する方法

+0

3重引用符は、複数行のドキュメントストリングにのみ必要です。それ以外にも、ドキュメンテーション文字列を表示するときに何が表示されますか? BMP( '\ unnnn ')文字は、置換文字で表示されるか、代用文字で表されるべきです。いずれにせよ、これはOSと相互作用するtkによって制御されます。どのようなtcl/tkを使用していますか? 'Help' =>' About IDLE'が表示されます。 python.orgからpython.exeバイナリを使用する場合は、ActiveStateから入手できる最新の8.5.x tcl/tkを使用してください。 'https:// www.python.org/download/mac/tcltk /'を参照してください。 –

+0

ありがとう、テリー。 ActiveTclの最新バージョンをインストールしました。しかし、Python 3.6.3はTcl/Tkを認識しません。 IDLEでは、次のメッセージが引き続き表示されます。警告:使用しているTcl/Tk(8.5.9)のバージョンは不安定かもしれません。 最新情報については、http://www.python.org/download/mac/tcltk/をご覧ください。 – albert

+0

私が言うことができるのは、Pythonがどのようにtcl/tkを見つけるかについて、上のページの指示を**注意深く**再読することです。私はMacを持っていません。 –

答えて

0

__doc__属性を使用できるかどうかを確認してください。

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

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

編集:私は右のそれに接頭辞エスケープ文字uでそれを印刷することができ

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

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

:私は、Windows 10上でhelp(func)を試してみました

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

しかし、私が得ましたdocstringはLinuxのままです:

+1

私は__doc__の正しい文字列表示を得ました。 MacOS IDLEでhelp()を呼び出すことによって、ドキュメントストリングを表示する際に問題が発生しました。私はアジア文字の代わりに\ uxxxxのようなユニコード文字列を得ました。 – albert

+0

@albert、私の編集をご覧ください。 – srig

関連する問題