メイン言語でモジュール関数を単に使うのではなく、なぜPythonがモジュールを使用するのですか?これは非常に便利で、特に、ランダム、re、osなどの主要なものにとっては非常に簡単です。 Pythonがシンプルさとミニマリストを説くならば、なぜ余分なコード行を書く必要がありますか?なぜPythonはモジュールを使用しますか?
答えて
1)Python#19のZen:「ネームスペースは素晴らしいアイデアを抱いています。それ以上のことをしましょう!」
名前の付いたモジュールは、同じ名前の関数間で衝突する可能性がなくなるため、優れています。すべてが組み込みだった場合は、os.error()
は(あなたがerror()
と呼ばれる独自の関数を定義してみ禁止!と天国)
を組み込みint()
機能とrandom.int()
機能同上logging.error()
と衝突するでしょう。後者はrandom_int()
と書く必要があります。これは、モジュール構文と同じくらいのタイピングです。名前空間を明示的にしてモジュールを使用してみませんか?
これは、構文が悩んでいるのと同じ理由です。名前空間を汚染し、エキサイティングな名前衝突エラーの可能性があります。
2)組み込みコンポーネントとモジュールの概要は誰が決定しますか?
あなたが個人的に書くプログラムのほとんどはos
とre
です。個人的に私が最後の3か月間に書いたすべてのスクリプトには、sqlite3
,csv
およびlogging
が含まれています。 Pythonプログラマーがこれまでに書いたすべてのプログラムの組み込み関数として組み込むべきでしょうか?
しばらくすると、あなたの組み込みリストはBen Hurよりも大きくなります。作成された
メモリと速度効率
オブジェクト(およびすべてがPythonでオブジェクトである)Pythonのインタープリタ・プロセスに割り当てられたメモリを占有します。モジュールをインポートすると、そのコードが実行され、多くのオブジェクト(関数、クラス、データなど)が作成されます。そのほとんどは、有用であるためにメモリ内に残る必要があります。機能を論理的に異なるモジュールに分けることで、プログラムは必要な機能を提供するオブジェクトにのみメモリを割り当てることができます。
すべてが組み込まれていれば、スタンダードライブラリ全体のクラス、関数、およびその他のオブジェクトすべてに費やされる膨大な量のメモリがあります。その1%未満が実際には平均的なプログラムにとって有益です。さらに、インタプリタが起動するたびに、これらすべてのオブジェクトを作成するすべてのコードを実行する時間を無駄にします。
+1洞察力があります。 –
- 1. なぜDrupal 7モジュールを使用/作成しますか?
- 2. Pythonの:あなたは、モジュールからコンパイルPythonバイトコードを見れば、なぜ `return`モジュール
- 3. モジュールバンドルをES6モジュールで使用するのはなぜですか?
- 4. 使用Pythonモジュール
- 5. なぜPythonはインポートされたモジュールをパッケージに添付しますか?
- 6. Pythonモジュールの使用
- 7. なぜPythonでlen(file)を使用しないのですか?
- 8. なぜPythonでChainmapモジュールをインポートできないのですか?
- 9. なぜsqlcommandbuilderを使用しますか?
- 10. なぜmysqli_close()を使用しますか?
- 11. なぜTaskStackBuilderを使用しますか?
- 12. なぜthis.props.childrenを使用しますか?
- 13. なぜカスタムフォントアイコンを使用しますか?
- 14. なぜReaderWriterLockSlimを使用しますか?
- 15. なぜIntent.createChooser()を使用しますか?
- 16. なぜQStringLiteralを使用しますか?
- 17. なぜmem_fnを使用しますか?
- 18. なぜメンバレスインターフェイスを使用しますか?
- 19. なぜstring.toString()を使用しますか?
- 20. なぜオートリリースプールを使用しますか?
- 21. なぜResponse.ClearHeaders()を使用しますか?
- 22. なぜfmt.Sprintを使用しますか?
- 23. Pythonのpipモジュールを使用してモジュールをインストールする
- 24. Pythonのモジュールを使用
- 25. なぜ\ bはpython reモジュールで動作しないのですか?
- 26. Pythonでclassmethodコンストラクタを使用するのはなぜですか?
- 27. '__main__'のモジュールをインポートすると、マルチプロセスでモジュールを使用できないのはなぜですか?
- 28. 他のモジュール変数を使用するPythonのモジュール変数をオーバーライドします
- 29. pythonモジュールはboost pythonを使っていますか?
- 30. マルチプロセッシングを使用したPython pintモジュール
プログラムによっては、これらのモジュールを使用する必要がない場合があります。なぜあなたはあなたのプログラムで、あなたは使用しないことを望むでしょうか? –
これは本当ですが、多くのプログラムでre、os、またはrandomモジュールが使用されていますが、Pythonではあまり知られていない関数のほうがずっと少なくなっています。 – Billjk
"名前空間は素晴らしいアイデアです。 - http://www.python.org/dev/peps/pep-0020/ – monkut