from module import function
FMIFコーディングスタイルと呼びましょう。
import module
IMコーディングスタイルと呼びましょう。
from package import module
FPIMコーディングスタイルと呼びましょう。
IM + FPIMがFMIFよりも優れたコーディングスタイルと見なされるのはなぜですか?(この質問のインスピレーションについては、この投稿を参照してください。)
IMよりもFMIFを好むようになるいくつかの基準は次のとおりです。
- コードの短さ:短い関数名を使用できるため、1行あたり80列の規則に従うことができます。
- 読みやすさ:
chisquare(...)
より読みやすいように見えますscipy.stats.stats.chisquare(...)
。これは主観的な基準ですが、ほとんどの人が同意すると思います。 - リダイレクトのしやすさ:FMIFを使用していて、後で何らかの理由でPythonをリダイレクトして定義するの
function
ではalt_module
なく、module
1行だけ変更する必要がある場合:from alt_module import function
。IMを使用する場合は、コードの多くの行を変更する必要があります。
IM + FPIMがFMIFよりも優れている理由はすべて興味がありますが、特に、ここで説明する次の点について詳しく説明したいと思います。
IMの長所:
- テストでのモック/注入の容易さ。(私は最近、この用語の意味を学びましたが、モックについてはあまり詳しくありません。ここで、IMがFMIFよりも優れていることを示すコードを示していただけますか?)
- 一部のエントリを再定義することにより、モジュールを柔軟に変更する機能。(これはIMに対するFMIFの利点のように思われるため、私は何かを誤解しているに違いありません。上記のFMIFを支持する私の3番目の理由を参照してください。)
- データのシリアル化とリカバリに関する予測可能で制御可能な動作。(IMまたはFMIFの選択がこの問題にどのように影響するかは本当にわかりません。詳しく説明してください。)
- FMIFが「私の名前空間を汚染する」ことは理解していますが、否定的な言い回しであるだけでなく、これがコードを具体的にどのように傷つけるかについては理解していません。
どうもありがとう。