私の会社の中小のライブラリをいくつか書かなければならないとしましょう。Pythonライブラリを書く:構造、命名、およびインポートのベストプラクティス
それは、Javaのアプローチを使用するように、ニシキヘビの方法で、意味をなすと、このような次のような構造を実現するなど、一般的なハイレベルパッケージ(エヘン、モジュール)で、それらのすべてを接頭辞ん:
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
それが進むべき道だ、私はほとんどの時間は、第二のアプローチが使用されていることがわかり、私は確認のために見ている(またはしない)して
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
:またはそれは単にのために行く方が良いです。
私は横に、PEP 008にこの点で何かを見つけることができませんでした:
Pythonのライブラリの命名規則は、混乱のビットですので、我々はこれが完全に一致を得ることは決してないだろう[...]
は、その後、我々は唯一のモジュールとクラスの命名適応症のほか、相対輸入がに落胆しているという事実を取得します。
絶対輸入はあなたが本当に重要なあなたのライブラリを整理する方法の決定を行う行くための方法です(と私は相対的な輸入を回避することが良いか悪いかどうかを議論するためにここにいないよ)という事実。
私はすべてのライブラリのネームスペースを使用するJavaアプローチが好きですが、Python以外の印象を受けています...お勧めの方法は何ですか?
PS。 一般的に「ベストプラクティス」の質問は主観的なものであると考えられますが、PythonではPEPの存在が私の意見では非常に客観的です。答えは...ライブラリを整理するためのベストプラクティスではありません。
会社の人々がライブラリを使用するつもりはありますか?もしそれらが内部的に使用されていれば、 'mycompany.mylibary1'はあなたが後で誰かの' mylibrary1'とトラブルに遭うことができないことを意味します。 –