subprocess
モジュールのプライマリクラスは、名前がPopen
であり、サブプロセスを表します。 Popen
誰かが、実際にオブジェクトが何であるかを表す名前を選択するのではなく、名前をいくつかの関数命名フォーマットに従わせようとしていたように聞こえます。なぜ誰かがそれが何か単純なもの、例えばSubprocess
のようなものに選ばれたのか知っていますか?subprocess.Popenクラスの名前がSubprocessでないのはなぜですか?
3
A
答えて
7
今、私はこれが世界で最も大きな名前だと言っているわけではありませんが、私は理解しています。
元々、popenファミリーはosモジュール内にあり、由緒あるposix popenの実装でした。サブプロセスモジュールへの移動はそれらの名前を変更する適切な時期だったでしょうが、私はPopenを保存することで、長い歴史を持つ人や古いPOSIX関数を見つけやすくなったと思います。
最古のposix化身であるPopen
は、常にProcessを開き、ファイルのようにstdioから読み書きできるようになっています。したがって、Popen
のニーモニックは、それが種別の試みの中でProccesOpen
の略語であり、オープンのように見えるということです。
-1
subprocess
が置き換えられているため、名前が選択されたのは、以前はという名前のos
モジュールでした。両者の間の移行を自動化する方法さえあります。
5
subprocess.Popen
は、os.popenX
POSIX関数(長い履歴を持つ)のグループを置き換えます。 Popen
という名前は、古い関数に慣れた人が新しい関数を見つけて使用する可能性が高くなると思います。
PEP for subprocess (PEP 324)は、モジュールの名前ではなく、クラスPopen
の議論の少しを持っています。 list of PEPs(Python拡張提案)は、Pythonの機能の根拠を探しているならば、一般的には優れた場所です。
関連する問題
- 1. Array.prototype.someの名前が.anyでないのはなぜですか?
- 2. なぜ、subprocess.Popen(...)が返されないのですか?
- 3. なぜcaseクラスの名前が 'case'ですか?
- 4. 名前がマングリングしないのはなぜですか?
- 5. subprocess.Popenがfind -execで動作しないのはなぜですか?
- 6. なぜLaravel移行クラスに名前空間がないのですか?
- 7. 名前のないパラメータはなぜ有用なのですか?
- 8. クラスが関数とデータメンバで同じ名前を持つことができないのはなぜですか?
- 9. 同じ名前のすべてのクラスでmouseoverとmoveoutが機能しないのはなぜですか?
- 10. HandlerThreadに名前が必要なのはなぜですか?
- 11. 名前検証が無効なのはなぜですか?
- 12. npmの名前がNode Package Managerでないのはなぜですか?
- 13. なぜpython subprocess.Popenはclose_fdパラメータが必要ですか?
- 14. クラスと同じ名前のメソッドが戻り値の型を必要としないのはなぜですか?
- 15. MDLMeshに名前のないデフォルト属性があるのはなぜですか?
- 16. MatchResultに名前付きグループのメソッドがないのはなぜですか?
- 17. html要素のクラス名が変更されないのはなぜですか?
- 18. 名前空間のエイリアスをクラス内で宣言できないのはなぜですか?
- 19. なぜMVA名前空間内のCompareAttributeは、DataAnnotations名前空間ではないのですか?
- 20. PERSONがrefクラスではないのはなぜですか?
- 21. C#でSeleniumの 'WebElement'クラスがないのはなぜですか?
- 22. 名前付き範囲が機能しないのはなぜですか?
- 23. Microsoft.Win64名前空間が存在しないのはなぜですか?
- 24. 名前がリストに追加されないのはなぜですか?
- 25. jqueryがグローバル名前空間を汚染しないのはなぜですか?
- 26. 名前付き仮想ホストが動作しないのはなぜですか?
- 27. Objective-Cに名前空間がないのはなぜですか?
- 28. 名前エラーが表示されるのはなぜですか?
- 29. 異なるヘッダーの名前が同じであるのはなぜですか?
- 30. TARGETDIRディレクトリに名前が必要なのはなぜですか? WiXのプロジェクトで