Las líneas de continuación deben alinearse verticalmente con los elementos que anteriormente ha sido utilizados (paréntesis, llaves, corchetes) o usando “hanging indent” (aplicar tabulaciones en todas las líneas con excepción de la primera). Cuando se usa “hanging indent” o indentación colgante, se debe considerar lo siguiente; no debe haber argumentos en la primera línea y se debe usar una tabulación adicional para que esta línea se entienda como una línea de continuación:
Ejemplos:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Manera correcta: # Alineado con delimitadores de apertura. foo = long_function_name(var_one, var_two, var_three, var_four) # Se agregan 4 espacios (un nivel extra de indentación) para diferenciar los argumentos del resto de código. def long_function_name( var_one, var_two, var_three, var_four): print(var_one) # Para la Indentación colgante sólo se debe añadir un nivel de indentación. foo = long_function_name( var_one, var_two, var_three, var_four) |
Ejemplos errados:
1 2 3 4 5 6 7 8 9 10 11 |
# Incorrecto: # Se prohíbe no usar alineación vertical para argumentos en la primera línea. Como se observa los parámetros de la función (línea 5) no están alineados con el paréntesis de apertura (línea 4) foo = long_function_name(var_one, var_two, var_three, var_four) # Para el siguiente código se requiere de un indentado adicional ya que no se pueden diferenciar los argumentos del resto de código. def long_function_name( var_one, var_two, var_three, var_four): print(var_one) |
Cuando la parte condicional de una declaración if es lo suficientemente larga como para que requiera ser escrita en varias líneas, se debe utilizar un solo espacio antes del paréntesis de apertura más la expresión que se quiere evaluar, luego para las líneas posteriores al condicional, se debe hacer una indentación de 4 espacios. En el siguiente ejemplo de código podemos ver algunas opciones válidas a la hora de colocar la indentación para un if:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Sin identacion extra. if (this_is_one_thing and that_is_another_thing): do_something() # Agregar un comentario, el cual proveerá una distinción en algunos editores if (this_is_one_thing and that_is_another_thing): # Cuando ambas condiciones son verdaderas podemos ejecutar este código. do_something() # Agregar una indentado extra a continuación de la línea del condicional. if (this_is_one_thing and that_is_another_thing): do_something() |
El corchete / llave / paréntesis, de cierre en asignaciones multilínea, puede estar alineado con el primer carácter, siendo este diferente a un espacio en blanco, por ejemplo
1 2 3 4 5 6 7 8 |
my_list = [ 1, 2, 3, 4, 5, 6, ] result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', ) |
1 2 3 4 5 6 7 8 |
my_list = [ 1, 2, 3, 4, 5, 6, ] result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', ) |