リロード(SYS)を使用した後、IDLEシェルで表示を停止します。入力した場合、print('hello world')
、何も表示されません。結果は、Pythonの2.7シェルで
ところで、なぜreload(sys)
がここに必要ですか?それがなければ、setdefaultencoding()はエラーを引き起こしますか?
リロード(SYS)を使用した後、IDLEシェルで表示を停止します。入力した場合、print('hello world')
、何も表示されません。結果は、Pythonの2.7シェルで
ところで、なぜreload(sys)
がここに必要ですか?それがなければ、setdefaultencoding()はエラーを引き起こしますか?
reload(sys)
を必要とする質問は、IDLEとは関係ありません。 2.7のdocエントリの最後の文を読んでください。
sys.setdefaultencoding(名)
現在のUnicode処理のデフォルトエンコーディングを設定します。 nameが利用可能なエンコーディングと一致しない場合は、 LookupErrorが送出されます。この機能は、 でサイトモジュールの実装と、必要に応じてsitecustomizeによってのみ使用されるように意図されています。 サイトモジュールで使用されると、sysモジュールの 名前空間から削除されます。
この機能は使用しないでください。 3.xでは、削除されました(または表示されなくなりました)。したがって、標準のPythonコンソールインタプリタからは次のようになります。
C:\Users\Terry>py
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys
<module 'sys' (built-in)>
>>> sys.setdefaultencoding
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'setdefaultencoding'
2.7では、モジュールを再初期化して削除を元に戻します。したがって、
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding
<built-in function setdefaultencoding>
EDIT:無関係な素材が削除され、以下の正解が追加されました。
印刷に関する問題については、も再ロードしてください。は、出力ストリームのIDLEの変更を元に戻します。これにより、印刷コマンドが無効になります。彼らは実行しますが、実際には何も送信されません。
>>> print 'abc', u'abc'
>>>
上記はリロード後ですが、復活したsetdefaultencodingを呼び出す前です。私は、システムのリロードがその変更を元に戻してIDLEを無効にすることを警告するメモをIDLEの文書に追加する予定です。
これで、その方法を使用しない理由が分かりました。 –
任意の説明を理解できます –