ProgramaciónLíder de Equipo de Python

Hable sobre las convenciones de nomenclatura (PEP8 y otras) en Python. ¿Cómo afecta el incumplimiento de estas convenciones a la práctica del trabajo con el código? Dé ejemplos de las consecuencias reales de violar PEP8 en proyectos.

Supere entrevistas con el asistente de IA Hintsage

Respuesta.

En Python existen varias convenciones de estilo de código, siendo la principal PEP8:

  • Nombres de variables/funciones: lower_case_with_underscores
  • Nombres de clases: CapitalizedCamelCase
  • Constantes: ALL_CAPS
  • Longitud de línea: hasta 79 caracteres
  • Sangrías: 4 espacios (¡no tabulaciones!)
  • Espacios alrededor de operadores: a = b + c
  • Importaciones: cada importación en una línea separada, primero bibliotecas estándar, luego de terceros, luego locales.

Cumplir con PEP8 facilita el trabajo en equipo, mejora la legibilidad, reduce la barrera de entrada, simplifica la automatización de pruebas, entre otros.


Pregunta capciosa.

En PEP8 se recomienda no utilizar nombres de variables de una sola letra. ¿Es posible usar nombres cortos en list comprehensions o en lambdas? ¿Por qué?

Respuesta: En el caso básico para iteraciones cortas (por ejemplo, en list comprehensions para variables de marcador, como x, i, j) se permite utilizar nombres de una sola letra para no sobrecargar expresiones cortas. Para expresiones más complejas, es mejor dar nombres significativos.

Ejemplo:

# Aceptable: squares = [x**2 for x in numbers] # Mejor: squares = [number**2 for number in numbers]

Ejemplos de errores reales debido al desconocimiento de los matices del tema.


Historia 1

En un proyecto bancario, se encontraron con que algunas funciones y parámetros se nombraron en diferentes tradiciones (CamelCase, snake_case, usando guiones). Un nuevo miembro del equipo se confundía constantemente sobre dónde se utilizaban los nombres; casi dos semanas se gastaron en resolver colisiones y renombrar variables.


Historia 2

En un proyecto de ingeniería de datos, no se respetaron las sangrías, mezclando tabulaciones y espacios. Esto llevaba a SyntaxError en diferentes estaciones de desarrollo, y algunos desarrolladores perdían horas buscando espacios de más.


Historia 3

En un gran portal educativo, se mezclaron nombres de variables cortos y largos. Por ejemplo, una función para procesar registros se llamó l(), y el manejador de inicio se llamó long, lo que en muchas IDEs tomó mucho tiempo para navegar y causó confusión en el uso de la función con el elemento l de la lista.