cherryPy
たとえば、次のようなファイルがあります。
__init__.py
_cptools.py
それらはどう違いますか?これは何を意味するのでしょうか?
cherryPy
たとえば、次のようなファイルがあります。
__init__.py
_cptools.py
それらはどう違いますか?これは何を意味するのでしょうか?
__...__
予約済みの Python名(ファイル名と他の名前の両方) を意味します。二重アンダースコア表記を使用して独自の名前を発明するべきではありません。既存のものを使用する場合、それらには特別な機能があります。
この特定の例で__init__.py
は、パッケージの「メイン」ユニットを定義します。また、Python は特定のディレクトリをパッケージとして扱います。呼び出すときに使用される単位ですimport cherryPy
(cherryPy
ディレクトリです)。これはモジュールのチュートリアルで簡単に説明されています。
もう 1 つの例は__eq__
、クラスの等値比較を提供するメソッドです。==
これらのメソッドを直接呼び出すことができます (たとえば、演算子を使用するときに暗黙的に使用します)。ただし、新しいバージョンの Python ではそのようなメソッドがさらに定義されている可能性があるため、競合する可能性があるため、独自の名前を作成しないでください__
。そのようなメソッドの非常に詳細なリストは、データ モデルのドキュメントにあります。
_...
「内部」名としてよく使用されます。たとえば、 で始まるモジュール_
は直接使用しないでください。同様に、 のメソッド_
はおそらく非公開であるなどです。これは単なる慣習ですが、それを尊重する必要があります。
これらおよびその他の命名規則については、Python コードのスタイル ガイド - 説明的: 命名スタイルで詳しく説明されています。
簡単に言うと:
__double_leading_and_trailing_underscore__
: ユーザー制御の名前空間に存在する「魔法の」オブジェクトまたは属性。例えば__init__
、__import__
または__file__
。そのような名前を発明しないでください。文書化されたとおりにのみ使用してください。_single_leading_underscore
: 弱い「内部使用」指標。たとえばfrom M import *
、名前がアンダースコアで始まるオブジェクトはインポートされません。