subprocess
模塊中的主類爲名稱Popen
,表示子過程。 Popen
聽起來像有人試圖強制名稱遵循一些函數命名格式,而不是選擇實際代表對象的名稱。有誰知道爲什麼它被選擇在簡單的東西上,比如說Subprocess
?爲什麼subprocess.Popen類未命名爲Subprocess?
3
A
回答
7
現在,我不是說這是世界上最偉大的名字,而是我理解它的想法。
最初,popen家族是在os模塊中,並且是一個令人尊敬的posix popen的實現。移動到子進程模塊本來是重新命名它們的好時機,但我想保留Popen可以更容易地找到那些在python中擁有悠久歷史的人員的文檔,甚至可以在那些文檔中找到令人敬畏的posix函數。
從它最早的posix化身,Popen
一直打算打開一個進程,並允許您讀取和寫入它的stdio像一個文件。因此,Popen
的助記符是ProccesOpen
的簡寫,用於嘗試某種看似開放的類型。
-1
我想選擇這個名字是因爲功能subprocess
正在取代之前在os
模塊中作爲os.popen
函數。甚至可以有兩種方法來實現兩者之間的遷移自動化。
5
subprocess.Popen
代替os.popenX
POSIX函數組(歷史悠久)。我想Popen
這個名稱使舊習慣的人更容易找到並使用新功能。
PEP for subprocess (PEP 324)對模塊的名稱有一點點的討論,但對Popen
沒有。如果您正在尋找Python功能的基本原理,那麼list of PEPs(Python增強提議)通常是一個很好的開始。
相關問題
- 1. 爲什麼subprocess.Popen不工作
- 2. 爲什麼命名函數在未命名時不起作用?
- 3. 爲什麼命名查詢?
- 4. 爲什麼命名不同?
- 5. 爲什麼subprocess.Popen與shell命令有奇怪的格式?
- 6. 爲什麼ISeq的「更多」未命名爲「休息」?
- 7. 爲什麼subprocess.popen返回空字符串
- 8. 爲什麼Node.js命名爲Node.js?
- 9. 爲什麼文件被命名爲catalina.out?
- 10. 爲什麼不將Array.prototype.some命名爲.any?
- 11. 爲什麼case class被命名爲'case'?
- 12. 未找到類,爲什麼?
- 13. 命名爲「類」
- 14. 爲什麼要將類型放在未命名的名稱空間中?
- 15. 爲什麼log4j重命名文件名?
- 16. 爲什麼函數不被視爲命名類型?
- 17. 爲什麼沒有爲命名指針類型定義方法?
- 18. 爲什麼爲django模型類命名參數
- 19. 未命名類別爲年級
- 20. 爲什麼構造函數在未命名的命名空間中失敗?
- 21. 爲什麼didFindPlacemark從未命中?
- 22. 爲什麼irc發送「命令未知」?
- 23. 什麼是'命名類型'
- 24. 命名空間未定義或重新定義,爲什麼?
- 25. os.popen命令轉換爲subprocess.Popen實例
- 26. 爲什麼命名:NodeList vs childNodes
- 27. 爲什麼stdClass命名空間?
- 28. 爲什麼pyparsing去除命名結果?
- 29. 爲什麼CSLA這樣命名?
- 30. 爲什麼沒有Microsoft.Win64命名空間?