3

私は、Pythonに関連するSOのかなりの量の質問が、Sysクラス、OSクラス、およびクラスなしを台無しにする人々に関するものであることに気づきました。たとえば、簡単に混乱するのは、、、およびのos.open("something")場合open("something")ですsys.open("something")。クラスの命名の背後にある理由はまだ理解していません。おそらくそれは単なる進化です。

  1. why現在の名前で作成されているのを聞きたいですか?
  2. クラスにFDがあるなどの理由で名前を付けていますか?
  3. 一部のクラスには特別な特権が必要なため、名前を付けていますか?
  4. 設計ソリューションの命名はどの程度ですか?

質問に答えられない場合は、クラスを暗記して区別するための優れたニーモニックを自由に提案してください。

4

2 に答える 2

3

簡単に混乱するのは、os.open( "something")、open( "something")、sys.open( "something")の場合です。

「ニーモニック」とは、オンラインで入手できる、またはワークステーションにダウンロードできるドキュメントです。

  • 組み込みopenhttp ://docs.python.org/library/functions.html#open 「ファイルを開く」

  • os.openhttp ://docs.python.org/library/os.html#os.open 「この関数は低レベルのI/Oを対象としています。」

  • sys.open存在しません。

  • io.openhttp ://docs.python.org/library/io.html#io.open 「Python3.xでは、ファイルとストリームにアクセスするためのデフォルトのインターフェースです」

「ニーモニック」は簡単です。要件に一致するものを使用してください。

現在の名前で作成された理由

別のライブラリで言語を乱雑にしないようにします。

クラスにFDがあるなどの理由で名前を付けていますか?

おそらく。FDはOSの機能であり、言語の機能ではありません。それが彼らが別の図書館にいる理由です。

一部のクラスには特別な特権が必要なため、名前を付けていますか?

全くない。

設計ソリューションの命名はどの程度ですか?

別のライブラリで言語を乱雑にしないようにします。

于 2011-04-09T02:39:37.437 に答える
2

組み込み関数は、頻繁に必要なものです。それらにアクセスするためにモジュールをインポートする必要はないため、モジュールプレフィックスも使用しません。open()ファイルを開くことは非常に一般的な操作であるため、はそのような関数の1つです。ファイルを開き、使いやすいファイルオブジェクトを返します。

このosモジュールは、オペレーティングシステムインターフェイス用です。os.open()オペレーティングシステムのファイルインターフェイスへのrawインターフェイスです。ファイルを開き、通常は何も必要としない裸のファイル記述子を返します。

このsysモジュールは、システム固有のものです。sys.open()存在しない。

于 2011-04-09T02:40:02.163 に答える