2008-09-01 16 views
3

subprocessモジュールのプライマリクラスは、名前がPopenであり、サブプロセスを表します。 Popen誰かが、実際にオブジェクトが何であるかを表す名前を選択するのではなく、名前をいくつかの関数命名フォーマットに従わせようとしていたように聞こえます。なぜ誰かがそれが何か単純なもの、例えばSubprocessのようなものに選ばれたのか知っていますか?subprocess.Popenクラスの名前がSubprocessでないのはなぜですか?

答えて

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の機能の根拠を探しているならば、一般的には優れた場所です。

関連する問題