"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Mejores prácticas de Python: escritura de código limpio, eficiente y mantenible

Mejores prácticas de Python: escritura de código limpio, eficiente y mantenible

Publicado el 2024-11-06
Navegar:208

Python Best Practices: Writing Clean, Efficient, and Maintainable Code

Python es uno de los lenguajes de programación más populares debido a su simplicidad, legibilidad y versatilidad.

Ya sea que sea un desarrollador experimentado o un principiante, seguir las mejores prácticas en Python es crucial para escribir código que sea limpio, eficiente y fácil de mantener.

En esta publicación de blog, exploraremos algunas de las mejores prácticas clave a tener en cuenta al escribir código Python.


1 - Adherirse a las Directrices PEP 8

PEP 8 es la guía de estilo para el código Python, que proporciona convenciones para formatear y estructurar su código.

Algunos puntos clave del PEP 8 incluyen:

  • Sangría: utilice 4 espacios por nivel de sangría.
  • Longitud de línea: limita todas las líneas a un máximo de 79 caracteres.
  • Líneas en blanco: Separe las definiciones de funciones y clases de nivel superior con dos líneas en blanco, y las definiciones de métodos dentro de una clase con una línea en blanco.
  • Importaciones: coloque las importaciones en la parte superior del archivo, agrupadas en el siguiente orden: importaciones de biblioteca estándar, importaciones de terceros relacionadas e importaciones específicas de biblioteca/aplicación local.

Adherirte a PEP 8 hace que tu código sea más legible y consistente con otras bases de código de Python.


2 - Escriba nombres de variables descriptivos y concisos

Elija nombres de variables que sean descriptivos pero concisos.

Evite variables de una sola letra, excepto en casos como contadores de bucles.
Por ejemplo:

# Bad
a = 10

# Good
number_of_users = 10

Los nombres de variables descriptivas hacen que su código se explique por sí mismo, lo que reduce la necesidad de comentarios extensos y facilita la comprensión para otros (y para usted mismo en el futuro).


3 - Utilice listas por comprensión y expresiones generadoras

Las listas por comprensión y las expresiones generadoras proporcionan una forma concisa de crear listas y generadores.

Son más legibles y, a menudo, más rápidos que usar bucles.

# List comprehension
squares = [x**2 for x in range(10)]

# Generator expression
squares_gen = (x**2 for x in range(10))

La comprensión de listas es mejor cuando la lista resultante es lo suficientemente pequeña como para caber en la memoria.

Utilice expresiones generadoras para conjuntos de datos más grandes para ahorrar memoria.


4 - Aproveche las funciones y bibliotecas integradas de Python

La biblioteca estándar de Python es amplia y, a menudo, es mejor utilizar funciones integradas en lugar de escribir código personalizado.

Por ejemplo, en lugar de escribir su propia función para encontrar el máximo de una lista, use la función max() incorporada de Python.

# Bad
def find_max(lst):
    max_val = lst[0]
    for num in lst:
        if num > max_val:
            max_val = num
    return max_val

# Good
max_val = max(lst)


El uso de bibliotecas y funciones integradas puede ahorrar tiempo y reducir la probabilidad de errores.


5 - Sigue el principio SECO (no te repitas)

Evita duplicar código.

Si te encuentras escribiendo el mismo código más de una vez, considera refactorizarlo en una función o clase.

Esto no solo reduce el tamaño de tu código base sino que también hace que sea más fácil de mantener.

# Bad
def print_user_details(name, age):
    print(f"Name: {name}")
    print(f"Age: {age}")

def print_product_details(product, price):
    print(f"Product: {product}")
    print(f"Price: {price}")

# Good
def print_details(label, value):
    print(f"{label}: {value}")

El principio DRY conduce a un código más modular y reutilizable.


6 - Utilice entornos virtuales

Cuando se trabaja en un proyecto de Python, especialmente con dependencias, es mejor utilizar entornos virtuales.

Los entornos virtuales le permiten administrar dependencias por proyecto, evitando conflictos entre paquetes utilizados en diferentes proyectos.

# 
Create a virtual environment
python -m venv myenv

# Activate the virtual environment
source myenv/bin/activate  # On Windows: myenv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

El uso de entornos virtuales garantiza que las dependencias de su proyecto estén aisladas y sean fácilmente reproducibles.


7 - Escribir pruebas unitarias

Escribir pruebas es crucial para garantizar que su código funcione como se espera y para evitar regresiones cuando realiza cambios.

El módulo unittest de Python es un excelente punto de partida para escribir pruebas.

import unittest

def add(a, b):
    return a   b

class TestMathFunctions(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)
        self.assertEqual(add(-1, 1), 0)

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

La ejecución regular de pruebas a medida que desarrollas garantiza que tu código permanezca sólido y libre de errores.


8 - Utilice comentarios y cadenas de documentos significativos

Si bien el código limpio debe explicarse por sí mismo, los comentarios y las cadenas de documentación siguen siendo importantes para explicar lógicas, suposiciones y decisiones complejas.

Utiliza los comentarios con moderación y céntrate en por qué hiciste algo en lugar de en lo que hiciste.

def calculate_discount(price, discount):
    """
    Calculate the price after applying the discount.

    Args:
    price (float): Original price
    discount (float): Discount percentage (0-100)

    Returns:
    float: Final price after discount
    """
    return price * (1 - discount / 100)

Los buenos comentarios y cadenas de documentación mejoran la mantenibilidad y usabilidad de su código.


9 - Maneje las excepciones con gracia

Python proporciona potentes funciones de manejo de excepciones que deben usarse para administrar los errores con elegancia.

En lugar de permitir que su programa falle, utilice los bloques try y except para manejar posibles errores.

try:
    with open('data.txt', 'r') as file:
        data = file.read()
except FileNotFoundError:
    print("File not found. Please check the file path.")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

El manejo adecuado de las excepciones garantiza que su programa pueda manejar situaciones inesperadas sin fallar.


10 - Mantenga su código modular

El código modular es más fácil de entender, probar y mantener.

Divida su código en funciones y clases más pequeñas y reutilizables.

Cada función o clase debe tener una única responsabilidad.

# Bad
def process_data(data):
    # Load data
    # Clean data
    # Analyze data
    # Save results

# Good
def load_data(path):
    pass

def clean_data(data):
    pass

def analyze_data(data):
    pass

def save_results(results):
    pass

La modularidad mejora la claridad y la reutilización del código, lo que facilita su depuración y ampliación.


Conclusión

Si sigue estas mejores prácticas de Python, podrá escribir código que sea limpio, eficiente y fácil de mantener.

Ya sea que esté escribiendo un script pequeño o desarrollando una aplicación grande, estos principios lo ayudarán a crear un código Python mejor y más profesional.

Recuerde, codificar no se trata solo de hacer que las cosas funcionen; se trata de hacer que funcionen bien, ahora y en el futuro.

Declaración de liberación Este artículo se reproduce en: https://dev.to/devasservice/python-best-practices-writing-clean-ficient-and-maintainable-code-34bj?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3