2017-01-08 1 views
1

私が理解したように、PYTHONCASEOKオプションは大文字と小文字を区別しないでモジュールをインポートすることを可能にします。しかし、Pythonのほとんどすべてで大文字と小文字が区別されるため、このオプションを有効にして、より怠惰な書き込みを可能にする必要があります。なぜPythonはPYTHONCASEOKオプションを導入しましたか?

導入の理由は何ですか?

+1

プラットフォームによっては大文字と小文字が区別されるファイルシステムがないため、 https://www.python.org/dev/peps/pep-0235/ – jonrsharpe

+1

おそらくファイルシステムの中には大文字小文字を区別しないものがありますか?このオプションは、大文字と小文字を区別しないファイルシステムを持つプラットフォームでのみ機能します。 –

+0

okありがとう。私はこのことを以前は知らなかった。 –

答えて

3

PYTHONCASEOKの目的は、Windows上のNTFSとしてFAT、大文字と小文字を区別しないようになっている、またはプログラマの観点から、大文字と小文字を区別しないように動作しているファイルシステム、上のモジュールファイルを発見できるようにすることです。

大文字と小文字を区別しないファイルシステム用に書かれたコードをサポートするために、python 2.1でモジュールを検索する際に大文字小文字の区別がデフォルトの動作になる前に存在します。

: - などのOpenVMSなど - ファイルが書き込まれたときに、ファイル名の大文字と小文字を変更する場合があります

変更の詳細な説明はPEP 235

PEPに記載されている1つの興味深いシナリオは、一部のオペレーティングシステムがあることであるで提供されています

"fiLe"を作成した場合、そのファイルの保存先は「 」ですが、「FILE」と表示される可能性はほとんどありません。また、開いている16種類のバリエーション(FilE)が開きます。

したがって、モジュールを見つけるための大文字小文字を区別しない方法がシステムなどの必要です。

+3

これを追加するには、オペレーティングシステムではなく、大文字小文字を区別しない*ファイルシステム*がありますが、Windowsではこの区別がありません。厳密に言えば、NTFSファイルシステム(Windowsのデフォルト)は大文字と小文字を区別します(POSIXの賛辞になります)が、Windows自体は大文字と小文字を区別しません。 OSXのデフォルトのファイルシステムは大文字と小文字を区別しませんが、大文字と小文字を区別します。通常、UNIX/Linuxファイルシステムでは大文字と小文字が区別されますが、DVDにマウントされたFATメモリスティックは影響を受けません。 WindowsとUNIXの間でドライブを共有するのは楽しいです。 PYTHONCASEOKのために混乱し、正当な理由。 – cdarke

+0

もっと多くの例をお寄せいただきありがとうございます。 –

+0

ありがとう@cdarke、私はあなたのコメントを考慮に入れて答えを編集しました。 – snakecharmerb

関連する問題