¿Es posible dividir una línea larga en varias líneas en Python ?

Al igual que C, puede dividir una línea larga en varias líneas cortas. Pero en Python , si hago esto, habrá un error de sangría … ¿Es posible?

De PEP 8 – Guía de estilo para el código de Python :

La forma preferida de ajustar líneas largas es mediante el uso de la continuación de la línea implícita de Python entre paréntesis, corchetes y llaves. Si es necesario, puede agregar un par adicional de paréntesis alrededor de una expresión, pero a veces usar una barra invertida se ve mejor. Asegúrese de sangrar la línea continua adecuadamente.

Ejemplo de continuación de línea implícita:

a = some_function( '1' + '2' + '3' - '4') 

Sobre el tema de los saltos de línea alrededor de un operador binario, continúa diciendo:

Durante décadas, el estilo recomendado fue romper después de los operadores binarios. Pero esto puede afectar la legibilidad de dos maneras: los operadores tienden a dispersarse en diferentes columnas en la pantalla, y cada operador se aleja de su operando y pasa a la línea anterior.

En el código Python, se permite romper antes o después de un operador binario, siempre que la convención sea coherente a nivel local. Para el nuevo código, se sugiere el estilo de Knuth (saltos de línea antes del operador).

Ejemplo de continuación de línea explícita:

 a = '1' \ + '2' \ + '3' \ - '4' 

Hay más de una forma de hacerlo.

1). Una larga statement:

 >>> def print_something(): print 'This is a really long line,', \ 'but we can make it across multiple lines.' 

2). Utilizando paréntesis:

 >>> def print_something(): print ('Wow, this also works?', 'I never knew!') 

3). Usando \ otra vez:

 >>> x = 10 >>> if x == 10 or x > 0 or \ x < 100: print 'True' 

Cotizando PEP8 :

La forma preferida de ajustar líneas largas es mediante el uso de la continuación de la línea implícita de Python entre paréntesis, corchetes y llaves. Si es necesario, puede agregar un par adicional de paréntesis alrededor de una expresión, pero a veces usar una barra invertida se ve mejor. Asegúrese de sangrar la línea continua adecuadamente. El lugar preferido para romper alrededor de un operador binario es después del operador, no antes.

Si desea asignar una cadena larga a la variable, puede hacerlo de la siguiente manera:

 net_weights_pathname = ( '/home/acgtyrant/BigDatas/' 'model_configs/lenet_iter_10000.caffemodel') 

No agregue ninguna coma, ¡o obtendrá una tupla que contiene muchas cadenas!

También funciona en Python:

 >>> 1+\ 2+\ 3 6 >>> (1+ 2+ 3) 6 

Al intentar ingresar texto continuo (por ejemplo, una consulta), no coloque comas al final de la línea o obtendrá una lista de cadenas en lugar de una cadena larga:

 queryText= "SELECT * FROM TABLE1 AS T1"\ "JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\ "JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\ "WHERE SOMETHING BETWEEN  AND "\ "ORDER BY WHATEVERS DESC" 

un poco asi

Hay un comentario como este de acgtyrant , lo siento, no lo vi. : /

Por lo que yo sé, se puede hacer. Python tiene una línea de continuación implícita (entre paréntesis, corchetes y cadenas) para cadenas de comillas triples ( """like this""" ) y la sangría de las líneas de continuación no es importante. Para obtener más información, puede leer este artículo sobre el análisis léxico, en python.org.

El código relacionado con DB se ve más fácil a la vista en varias líneas, encerrado por un par de comillas triples:

 SQL = """SELECT id, fld_1, fld_2, fld_3, ...... FROM some_tbl""" 

que la siguiente larga cola gigante:

 SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"