Convenciones de nombres en Python (PEP 8): La referencia definitiva
PEP 8 es la guía de estilo oficial de Python, y sus convenciones de nombres son seguidas por prácticamente todo proyecto Python. Esta guía cubre todas las reglas que necesitas conocer.
Por qué PEP 8 importa
Python enfatiza la legibilidad. PEP 8 asegura que el código escrito por diferentes desarrolladores se vea y se sienta igual. Linters como flake8, pylint y ruff aplican estas convenciones automáticamente.
Nombres de variables y funciones: snake_case
Todas las variables y funciones usan minúsculas con guiones bajos:
user_name = "Alice"
total_price = 99.95
def get_user_by_id(user_id):
pass
def calculate_total_price(items):
pass
Nunca uses camelCase para funciones Python. Escribir getUserById se reconoce inmediatamente como no-Pythonic.
Nombres de clases: PascalCase
Las clases usan CapWords (PascalCase):
class UserAccount:
pass
class HttpRequestHandler:
pass
Constantes: SCREAMING_SNAKE_CASE
Las constantes a nivel de módulo usan mayúsculas con guiones bajos:
MAX_RETRY_COUNT = 3
API_BASE_URL = "https://api.example.com"
DEFAULT_TIMEOUT = 30
Nombres de módulos y paquetes
Módulos (archivos): cortos, todo en minúsculas, con guiones bajos si es necesario: utils.py, data_loader.py. Paquetes (directorios): cortos, todo en minúsculas, sin guiones bajos: mypackage.
Nombres de métodos y variables de instancia
Igual que las funciones — snake_case. Un guion bajo inicial para métodos internos (no públicos):
class User:
def __init__(self, name):
self.user_name = name
self._internal_id = generate_id()
def get_display_name(self):
return self.user_name
def _validate(self):
pass
Casos especiales
| Patrón | Convención | Ejemplo |
|---|---|---|
| Atributo privado | _guion_bajo_inicial | _internal_cache |
| Name mangling | __doble_guion_bajo_inicial | __private_method |
| Magic / dunder | __doble_ambos_lados__ | __init__, __str__ |
| Variable desechable | Guion bajo solo | for _ in range(10) |
| Variable de tipo | PascalCase, corto | T, KT, VT |
Errores comunes
- Usar camelCase para funciones (
getUserNameen vez deget_user_name) - Usar minúsculas para nombres de clases (
user_accounten vez deUserAccount) - Usar ALL_CAPS para variables normales
- Nombres de variables de una sola letra fuera de bucles
Convierte tu código rápidamente
¿Migrando desde JavaScript o Java? Usa nuestro conversor snake_case para transformar identificadores camelCase rápidamente. Para nombres de clases, prueba el conversor PascalCase. El hub de conversión te permite comparar todos los formatos a la vez.
Resumen
La nomenclatura PEP 8 es simple: snake_case para casi todo, PascalCase para clases, SCREAMING_SNAKE para constantes. Sigue estas reglas y tu código Python se sentirá natural para todo desarrollador Python.