Читать книгу El gran libro de Python - Marco Buttu - Страница 17

Indentación del código

Оглавление

En Python un bloque de código anidado no está delimitado por palabras clave o por llaves sino por el signo de dos puntos y la indentación (sangría) misma del código:



NOTA

Por bloque de código anidado entendemos el código interno a una clase, a una función, a una instrucción o sentencia if, a un bucle for, a un bucle while y demás. Solo los bloques de código anidados van precedidos por una instrucción que termina con el signo de los dos puntos. Más adelante veremos que los bloques anidados son la suite de las instrucciones compuestas o de las relativas cláusulas.

La indentación debe ser la misma para todo el bloque, por lo que el número de espacios en blanco (espacios o tabulaciones) es importante:


En la PEP-0008 se aconseja utilizar cuatro espacios para cada nivel de indentación y no mezclar nunca espacios y tabulaciones.

NOTA

Si utilizamos Vim como editor y queremos que los bloques de código se indenten automáticamente con cuatro espacios, podemos escribir en el archivo de configuración .vimrc las siguientes líneas:


A menudo tendremos que editar archivos escritos por otras personas, los cuales contengan indentaciones con tabulaciones. En estos casos, con Vim, una vez efectuada la configuración indicada, podemos convertir todas las tabulaciones del archivo en espacios mediante el comando retab.

Utilizar a la vez espacios y tabulaciones para indentar instrucciones en el mismo bloque es un error:


NOTA

En Python 3, a diferencia de Python 2, también es un error pasar de espacios a tabulaciones (o viceversa) al cambiar de nivel de indentación, como se muestra en la sección titulada Uso inconsistente de espacios y tabulaciones del Apéndice B.

Por tanto, la indentación es un requisito del lenguaje y no una cuestión de estilo, y esto supone que todos los programas Python tengan el mismo aspecto. Pero quizás un día las cosas cambien, y podremos utilizar también llaves para delimitar los bloques de código:


No, esta posibilidad no existe, por lo que las discusiones acerca de cómo indentar y posicionar los delimitadores de los bloques no tienen razón de ser (consulte la PEP-0666), y todo esto está perfectamente en línea con el Zen de Python, según el cual, como veremos dentro de poco, "debería haber un modo obvio, y preferiblemente uno solo, de hacer las cosas". Este único modo obvio de hacer las cosas se denomina pythonic way. Finalmente, como ya sabemos, no es necesario terminar las instrucciones con un punto y coma, sino que basta con saltar a una nueva línea. En cambio, el punto y coma es necesario para insertar más instrucciones en la misma línea:


Insertar varias instrucciones en la misma línea es de un estilo de programación pésimo, y de hecho está desaconsejado por la PEP-0008. En el resto del libro utilizaremos el punto y coma solo para ejecutar cadenas desde la línea de comandos:


NOTA

Existen distintas herramientas que permiten comprobar si nuestro código respeta la PEP-0008. Podemos realizar un rápido chequeo online con http://pep8online.com/, o bien, como alternativa, podemos utilizar pep8 (https:// pypi.python.org/pypi/pep8) o pyflakes. También están disponibles otros plugins que permiten efectuar la comprobación con Vim.

El gran libro de Python

Подняться наверх