2013-02-22 9 views

risposta

3

Dal documentation per sys.stdout:

stdout e stderr non devono necessariamente essere incorporati in oggetti file: ogni oggetto è accettabile finché possiede un metodo write() che accetta un argomento stringa .

+0

grazie amico, lo capisco adesso – user192082107

2

Più in particolare, la funzione di stampa (in Python 2.X è ancora una parola chiave, ma non importa qui) fa qualcosa di simile

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

in modo che, quando si chiamalo per stampare il tuo messaggio su sys.stdout. Tuttavia, se si sovrascrive sys.stdout con un oggetto contenente un metodo .write, verrà chiamato tale metodo. Questa è la magia di duck-typing.

Problemi correlati