2013-02-22 5 views

Antwort

3

Vom documentation für sys.stdout:

stdout und stderr muss nicht integrierte Dateiobjekte werden: jedes Objekt akzeptabel ist, solange es eine Methode write() hat, die ein String-Argument .

+0

danke Mann, ich bekomme das jetzt – user192082107

2

Insbesondere die Druck Funktion (in Python 2.x es immer noch ein Schlüsselwort ist, aber es spielt keine Rolle, hier) tut so etwas wie dies

import sys 
def print(message): 
    sys.stdout.write(message) 

, so dass, wenn Sie Rufen Sie es an, es wird Ihre Nachricht auf sys.stdout drucken. Wenn Sie sys.stdout jedoch mit einem Objekt überschreiben, das eine .write-Methode enthält, wird diese Methode aufgerufen. Das ist die Magie von duck-typing.

Verwandte Themen