Buenas prácticas en Python

Python es uno de los lenguajes de programación más populares y versátiles del mundo, pero para sacarle el máximo provecho y lograr mayor eficiencia es importante seguir buenas prácticas. En este artículo, cubriremos desde lo más básico hasta algunos consejos avanzados, para que tanto principiantes como profesionales puedan mejorar la calidad de su código.

Usar nombres descriptivos para variables y funciones

Para algunas personas puede resultar tentador usar nombres cortos y genéricos como x, y o z, pero esto dificulta la lectura y comprensión del código a largo plazo. En su lugar, a mis alumnos siempre les recomiendo nombres descriptivos que expliquen el propósito de la variable o función.

Ejemplo:

# No recomendable
x = 47

# Recomendable
edad_usuario = 47

Vale resaltar que, incluso si un código es corto, los nombres descriptivos facilitan su mantenimiento.

Por otra parte, si bien pueden ser útiles para códigos o explicaciones cortas, la declaración de variables globales suelen generar confusión y errores difíciles de detectar en nuestros proyectos. En lugar de eso, una buena alternativa es pasar los valores necesarios como argumentos de funciones.

Para comprender mejor esta idea veamos el siguiente ejemplo en código:

# Incorrecto
x = 5

def sumar_cinco(numero):
    return numero + x

# Correcto
def sumar_cinco(numero, incremento):
    return numero + incremento

resultado = sumar_cinco(10, 5)

La implementación de Programación Orientada a Objetos (POO) también puede contribuir a organizar y estructurar de mejor manera nuestros proyectos y también los datos.

Seguir la guía de estilos PEP 8 para Python

El PEP 8 es una guía estilo para Python que no solo hará que nuestro código se vea mejor, sino que será más fácil de entender para otros desarrolladores. Algunos de los puntos más importantes incluyen:

  • Usar 4 espacios por nivel de indentación.
  • Limitar las líneas a 79 caracteres.
  • Dejar dos líneas en blanco entre funciones y clases.

Ejemplo:

# No recomendado
def funcion(x):return x*2

# Recomendado
def funcion(numero):
    return numero * 2

Evitar el código redundante

Una de las grandes fortalezas de Python es su simplicidad. Por esta razón, resulta clave no complicar nuestro código con estructuras innecesarias. Por ejemplo, si tenemos que hacer algo repetidamente, es mejor usar funciones.

Ejemplo básico:

# Incorrecto
print("Hola, Juan")
print("Hola, María")
print("Hola, Pedro")

# Correcto
def saludar(nombre):
    print(f"Hola, {nombre}")

nombres = ["Juan", "María", "Pedro"]
for nombre in nombres:
    saludar(nombre)

Siguiendo la línea de pensamiento que mencionaba anteriormente, si plantemos la escalabilidad de un proyecto se recomienda pensarlo utilizando POO.

Manejar excepciones de manera adecuada

Uno de los aspectos clave para los profesionales es el manejo de excepciones. Como siempre explico en mis clases de programación, no es suficiente con saber que algo puede fallar, hay que preverlo y manejarlo correctamente. Python cuenta con el bloque try-except para estos casos.

Ejemplo:

# Incorrecto
archivo = open("datos.txt", "r")
contenido = archivo.read()
archivo.close()

# Correcto
try:
    with open("datos.txt", "r") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no se ha encontrado.")
except Exception as e:
    print(f"Ocurrió un error: {e}")

El uso de with asegura que el archivo se cierre correctamente incluso si ocurre un error.

Documentar el código

Para los profesionales, es vital que el código esté bien documentado. Python tiene una forma estándar de hacerlo: los docstrings. Estos son comentarios que se colocan al inicio de una función, clase o módulo para explicar su propósito.

A continuación veremos un comentario multilínea que explica el objetivo de una función:

def sumar(a, b):
    """
    Suma dos números.

    Parámetros:
    a -- El primer número
    b -- El segundo número

    Retorna:
    La suma de a y b.
    """
    return a + b

Escribir pruebas para el código

Las pruebas unitarias (Unit test) son esenciales para asegurarnos que nuestro código funciona correctamente, especialmente en proyectos grandes. Python ofrece el módulo unittest para escribir y ejecutar pruebas de manera sencilla.

Ejemplo básico:

import unittest

def sumar(a, b):
    return a + b

class TestSuma(unittest.TestCase):
    def test_suma(self):
        self.assertEqual(sumar(2, 3), 5)

if __name__ == '__main__':
    unittest.main()

Buenas prácticas en Python: conclusión

Tanto si estamos empezando como si ya contamos con experiencia, seguir buenas prácticas nos ayudará a escribir código más claro, eficiente y mantenible. Esto resulta crucial para que nuestro código sea fácil de entender, dado que muchos trabajamos en equipos colaborativos o somos parte de la sección de desarrollo de una empresa.

Como hemos visto en este artículo las buenas prácticas en Python son clave para lograr un código eficiente. En este sentido siempre me gusta remarcar que el aprendizaje continuo es clave, y el uso de estas recomendaciones nos posicionará muy bien como desarrolladores.

Si estás comenzando con Python te recomiendo la guía: 10 claves para empezar a aprender Python.

¿Alguna duda sobre el tema ¿Te gustaría profundizar en alguno de los aspectos del artículo? ¡Te leo en comentarios!

Más sobre Programación


Acerca de

Autor de los libros: Webmaster Profesional, HTML5: Comprenda el cambio y Apps HTML5 para móviles. Soy especialista en Desarrollo Web. Realizo proyectos basados en Inteligencia Artificial. Colaboré como autor y editor de contenidos para revistas, colecciones y diversos medios impresos y digitales. Brindo capacitaciones, clases de formación y consultorías sobre lenguajes de programación y herramientas para Desarrollo Web y móvil en modalidad online y presencial.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*