¿Cómo funciona la cadena de comillas triples de Python?

¿Cómo debería cambiarse esta función para devolver "123456" ?

 def f(): s = """123 456""" return s 

ACTUALIZACIÓN: todos, la pregunta es sobre cómo no tener \ t o lo que sea cuando se tiene un comentario de varias líneas, no cómo usar el módulo re .

No utilice una cadena de comillas triples cuando no desee espacios en blanco, tabs y nuevas líneas.

Usa la continuación implícita, es más elegante:

 def f(): s = ('123' '456') return s 
 def f(): s = """123\ 456""" return s 

No sangres ninguna de las líneas de blockquote después de la primera línea; Termina todas las líneas excepto la última con una barra invertida.

Las cadenas posteriores se concatenan, por lo que puede utilizar:

 def f(): s = ("123" "456") return s 

Esto te permitirá mantener la sangría a tu gusto.

 textwrap.dedent("""\ 123 456""") 

De la biblioteca estándar. Primero es necesario “\” porque esta función funciona al eliminar el espacio en blanco inicial común.

Tal vez me esté perdiendo algo obvio pero ¿qué pasa con esto?

 def f(): s = """123456""" return s 

o simplemente esto:

 def f(): s = "123456" return s 

o incluso más simple:

 def f(): return "123456" 

Si eso no responde a su pregunta, aclare de qué se trata la pregunta.

Es posible que desee comprobar este str.splitlines ([keepends])

Devuelve una lista de las líneas en la cadena, rompiendo los límites de las líneas. Este método utiliza el enfoque de nuevas líneas universales para dividir líneas. Los saltos de línea no se incluyen en la lista resultante a menos que se denenten objectives de mantenimiento y sean verdaderos.

Python reconoce “\ r”, “\ n” y “\ r \ n” como límites de línea para cadenas de 8 bits.

Entonces, para el problema en cuestión … podríamos hacer algo como esto …

 >>> s = """123 ... 456""" >>> s '123\n456' >>> ''.join(s.splitlines()) '123456' 
 re.sub('\D+', '', s) 

devolverá una cadena, si desea un entero, convierta esta cadena con int .

Tratar

 import re 

y entonces

  return re.sub("\s+", "", s) 

Mi suposicion es:

 def f(): s = """123 456""" return u'123456' 

Mínimo cambio y hace lo que se pide.