Frage

Die primäre Klasse in der subprocess Modul ist Name Popen, und stellt einen Unterprozess dar. Popen Es hört sich so an, als hätte jemand versucht, den Namen dazu zu zwingen, einem Funktionsbenennungsformat zu folgen, anstatt einen Namen zu wählen, der tatsächlich darstellt, was das Objekt ist.Weiß jemand, warum es etwas Einfachem vorgezogen wurde, wie zum Beispiel: Subprocess?

War es hilfreich?

Lösung

Nun, ich sage nicht, dass dies der größte Name der Welt ist, aber hier war die Idee, wie ich sie verstehe.

Ursprünglich befand sich die Popen-Familie im OS-Modul und war eine Implementierung des ehrwürdigen Posix Popen.Der Wechsel zum Unterprozessmodul wäre ein günstiger Zeitpunkt gewesen, sie umzubenennen, aber ich denke, dass die Beibehaltung von Popen es einfacher macht, es in den Dokumenten zu finden für diejenigen, die eine lange Erfahrung mit Python oder sogar mit den ehrwürdigen Posix-Funktionen haben.

Von seiner frühesten Posix-Inkarnation an Popen war schon immer dazu gedacht, einen Prozess zu öffnen und Ihnen das Lesen und Schreiben aus seinem Standard wie einer Datei zu ermöglichen.Daher die Eselsbrücke für Popen ist, dass es die Abkürzung für ist ProcessOpen in dem Versuch, irgendwie offen auszusehen.

Andere Tipps

subprocess.Popen ersetzt die Gruppe von os.popenX POSIX-Funktionen (die eine lange Geschichte haben).Ich nehme an, dass der Name Popen erhöht die Wahrscheinlichkeit, dass Personen, die an die alten Funktionen gewöhnt sind, die neuen finden und nutzen können.

Der PEP für Teilprozess (PEP 324) Hat eine kleine Diskussion über den Namen des Moduls, aber nicht über die Klasse Popen.Der Liste der PEPs (Python-Erweiterungsvorschläge) ist im Allgemeinen ein ausgezeichneter Ausgangspunkt, wenn Sie nach den Gründen für Funktionen von Python suchen.

Ich nehme an, der Name wurde wegen der Funktionalität gewählt subprocess ersetzt, war früher in der os Modul als os.popen Funktion.Es könnte sogar Möglichkeiten geben, die Migration zwischen beiden zu automatisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top