sys.stdout.write en python3 agrega 11 al final de la cadena

¿Alguien puede explicar por qué sys.stdout.write() agrega 11 a mi cadena?

 $ python3 Python 3.4.3+ (default, Jul 28 2015, 13:17:50) [GCC 4.9.3] on linux Type "help", "copyright", "credits" or "license" for more information. >>> x = 'hello' >>> y = 'world' >>> msg = '' >>> import sys >>> msg += x >>> msg += '\n' + y >>> msg 'hello\nworld' >>> sys.stdout.write(msg) hello world11 >>> print(msg) hello world 

NO se adjunta a la cadena escrita. 11 aquí está el valor de retorno de sys.stdout.write() , que es el número de caracteres escritos.

Ver write :

Escriba la cadena s en la secuencia y devuelva el número de caracteres escritos.


Es similar a:

 >>> def foo(): ... print('something', end='') ... return 42 ... >>> foo() something42