Python 3.4 wurde geändert, um es in stdout
auszugeben, was das erwartete Verhalten ist. Dies wird hier als Fehler mit Python aufgeführt: Ссылка . Die Kommentare zum Fehlerbericht weisen darauf hin, dass stdout
zwar die vernünftige Wahl ist, aber die Abwärtskompatibilität beeinträchtigt. Python 2.7.9 ist weitgehend unverändert, weil so vieles darauf beruht.
Hoffe das hilft!
Viele Programme würden einfach stdout
verwenden und es wäre egal, aber ich würde grundsätzlich stderr
bevorzugen. Kurz gesagt, stdout
ist für das Produkt der erfolgreichen Ausführung eines Programms, stderr
für alle Nachrichten, die für den Benutzer gedacht sind. Berechnete Werte gehen zu stdout
, während Fehler, Stack-Traces, Hilfe, Version und Verwendungsnachrichten für den Benutzer gedacht sind und zu stderr
gehen sollten.
Ich benutze diese Frage, um zu entscheiden, welcher Stream passend ist: Ist diese Nachricht für den Verbraucher des Hauptprodukts dieses Programms gedacht (ob das der menschliche Benutzer oder ein anderes Programm oder was auch immer ist) oder ist es ausschließlich für den menschlichen Benutzer von diesem Programm?
Sieht auch so aus, dass Java stderr auch für Versionsnachrichten verwendet: Warum geht 'java -version' an stderr?
Tags und Links python