Hoy te vamos a mostrar como indentar líneas largas desarrolladas en Pyhton. Es posible que algunos libros de programación para Python hayas visto ejercicios que vienen codificados en líneas separadas. Esto, dependiendo del IDE puede mostrarse de una manera diferente o de otra, pero en este tutorial te vamos a enseñar la manera correcta de romper líneas largas en Python. Si has tenido que picar código de otros desarrolladores, tal vez, hayas visto declaraciones como:
print('Area: {0}, Estimated ({1}): {2}'. format(area_of_circle, points, estimate(radius, points)))
Realmente, la declaración idividual sería de esta manera:
print('Area: {0}, Estimated ({1}): {2}'.format(area_of_circle, points, estimate(radius, points)))
El primer fragmento de código anterior es un ejemplo de cómo romper una línea de código en dos (o más) líneas para que no acabemos con líneas muy largas en nuestro código. ¿Cuánto debe medir una línea de código para que consideremos el romperla? Muy sencillo, si la longitud de la declaración supera los 80 caracteres, no estaría mal que considerases el romperla para que tu código se vea elegante.
En los libros sobre programación en Python, deben hacerlo a menudo porque, por razones de diseño una declaración no debe superar a 80 caracteres. Esto también afecta a tus proyectos, no por motivos de diseño al igual que en los libros, sino para que tus declaraciones sea más fáciles de leer. ¿Y como conseguir esto? Pues con un buen promedio, haciendo que todas las líneas tengan una longitud similar. Esto se formalizó (entre otras cosas) en PEP 8.
Ten en cuenta que los ejemplos de a continuación son con fines ilustrativos y rompen líneas muuuucho antes de que la sentencia supere de largo los 80 caracteres.
¿Cómo romper una declaración?
Cuando no estás llamando a una función
Si no estás llamando a una función, básicamente tienes dos opciones:
Usando los paréntesis
Así es exactamente, cómo se debería romper una declaración larga basándonos en el ejemplo que te hemos mostrado en el inicio del artículo. Por el momento ignora la llamada a print() y quédate con que la declaración es:
s = 'Area: {0}, Estimated ({1}): {2}'.format(area_of_circle, points, estimate(radius, points))
En esencia, esto sólo crea la cadena s. Si tuviéramos que dividir esta declaración en múltiples líneas, haríamos lo siguiente:
s = ('Area: {0}, Estimated ({1}): {2}' .format(area_of_circle, points, estimate(radius, points)))
Fíjate en el paréntesis del principio y en el del final.
He aquí otro ejemplo:
s1 = x + x**2/2 + x**3/3 + x**4/4 + x**5/5 + x**6/6 + x**7/7 + x**8/8
Aquí se ve cómo podemos utilizar el dividir sentencias como anteriormente en varias líneas, utilizando los paréntesis:
s3 = (x + x**2/2 + x**3/3 + x**4/4 + x**5/5 + x**6/6 + x**7/7 + x**8/8)
Utilizando el operador de continuación de línea
El operador de continuación de línea, puede ser utilizado para dividir declaraciones largas en múltiples líneas. Aquí puedes ver un ejemplo sobre cómo podríamos dividir la declaración anterior usando el operador :
s3 = x + x**2/2 + x**3/3 + x**4/4 + x**5/5 + x**6/6 + x**7/7 + x**8/8
Al final de cada línea (excepto la último), añadimos el caracter que indica que la siguiente línea es también parte de la misma declaración anterior.
Rompiendo if largos
A menudo tenemos que romper declaraciones if largas. De hecho es uno de los casos más comunes a los que me enfrento diariamente en el trabajo en el que, para que se entienda mejor el código, me veo obligado a dividir las sentencias en varias líneas. Aquí tienes un ejemplo sobre cómo romper líneas en Python dentro de un if con todo lo que hemos aprendido antes:
# Usando los paréntesis if (cond1 and cond2 and cond3 and cond4): # Bloque verdadero else: # Bloque falso # Usando el operador de continuación if cond1 and cond2 and cond3 and cond4: # Bloque verdadero else: # Bloque falso
Llamando a funciones
Por defecto, cuando llamamos a funciones diversas y deseas romper la declaración en varias líneas, puedes pulsar simplemente la tecla ENTER, sin hacer nada más, y seguir escribiendo tu código en múltiples líneas sin problema alguno. Por ejemplo:
x = 1 print(x, x)
Por lo tanto, podríamos haber roto el primer ejemplo que vimos de esta manera:
print('Area: {0}, Estimated ({1}): {2}'.format(area_of_circle, points, estimate(radius, points)))
Fíjate que cuando hemos llamado a la función format(), le hemos pasado los argumentos a través de líneas separadas.
Y hasta aquí el tutorial sobre cómo romper líneas largas en Python. Espero que os haya gustado y que le sepáis sacar partido para así embellecer vuestro código. Esto que, a priori, puede parecer solamente una cuestión de estética, veremos que no es así cuando leamos un código formateado de esta manera y nos demos cuenta de lo bien que se entiende. Nada más, ya sabes que si quieres proponer más temas, puedes utilizar el área de comentarios de más abajo.