Was ist eine einfache Möglichkeit zur Implementierung von fprintf in python?
In python, das folgende schreiben zu stdout
:
import sys
sys.stdout.write("blah %d" % 5)
Jedoch will ich flexibel sein, über die stream-wir drucken. Ich will, pass den stream als argument in einer Funktion, als würden Sie beim Aufruf fprintf
in jedem C
abgeleiteten Sprachen. In dem snippet von obigen source code stdout
ist hart codiert in der write-Anweisung. Aber wir wollen flexibel sein, über die stream schreiben wir. vielleicht wollen wir stderr
oder einige andere stream statt stdout
.
def something(stream): stream.write('blah %d' % 5); something(sys.stderr)
funktioniert gut; könnte Sie klären, was genau Sie versuchen zu erreichen?- warum brauchen Sie, um pass
sys.stderr
odersys.stdout
wenn beide sind von überall zugänglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen Sie
aber das bedeutet nicht geben Ihnen zusätzliche Flexibilität. Wenn Sie eine
some_stream
variable bezieht sich auf den Strom, den Sie schreiben möchten, können Sie bereits tundamit Sie nicht alles gewinnen, indem Sie die stream-Funktion argument. Das heißt, die
print
- Funktion nimmt einenfile
argument angeben, was stream zu schreiben:Folgendes tun:
Hier ist ein Beispiel für einen Aufruf:
Ausgabe der Konsole:
Normalerweise
print
(Python) ist ein Ersatz fürprintf
(C) und Ihre Derivate (fprintf
,println
...). Hier ist, wie das obige snippet Aussehen würde, wie in Python:Oder: