Читать книгу El gran libro de Python - Marco Buttu - Страница 30
La función integrada print()
ОглавлениеLa forma general de la función integrada print() es la siguiente:
Si no se le pasa ningún objeto, imprime una línea en blanco:
En cambio, si se le pasa uno o más objetos obj_i, los imprime separándolos con la cadena sep, que por defecto es un espacio, y terminando la impresión con la cadena end, que por defecto es un salto de línea:
Básicamente, la función print() solo crea la cadena:
para después pasarla al método write() del objeto asignado al parámetro file. Por tanto, y puesto que por defecto tenemos file=sys.stdout, la siguiente print():
equivale a esta llamada al método sys.stdout.write():
Así, si como archivo no utilizamos la salida estándar sino un archivo físico:
el código equivalente a la print() es el siguiente:
El parámetro flush sirve para forzar el vaciado del buffer inmediatamente después de la impresión. Por defecto, tenemos flush=False, lo que significa que el contenido del buffer no se escribe inmediatamente en el archivo:
En cambio, si escribimos flush=True, el buffer se vacía en cada impresión:
Hablaremos del buffering en la sección Los archivos del Capítulo 3 y en el Apéndice C. Si quisiéramos efectuar un elevado número de impresiones en un archivo en lugar de en pantalla, sería genial poder evitar pasar cada vez el archivo a la print() como argumento. Podemos hacerlo cambiando temporalmente sys.stdout, dado que este se asigna por defecto al parámetro file: