Python

220 artículos ordenados de base a avanzado — un concepto por artículo.

220 artículos · 1 secciones · actualizándose
Go Python CPP C Linux Rust Dart NVIM chuleta Módulos en Go Articles

§01 Python

01 Qué es Python y para qué sirve hoy 5 min 02 Qué es un intérprete y cómo ejecuta código Python 5 min 03 Lenguajes interpretados vs compilados: la distinción real 6 min 04 CPython, PyPy y MicroPython: implementaciones distintas de Python 6 min 05 Python 2 vs Python 3: la ruptura que importa conocer 5 min 06 El Zen de Python: criterio de diseño, no póster de oficina 6 min 07 Instalar Python en Windows correctamente 6 min 08 Instalar Python en macOS sin tocar el Python del sistema 5 min 09 Instalar Python en Linux sin romper el sistema 5 min 10 pyenv: gestión de múltiples versiones de Python 6 min 11 El REPL de Python: tu laboratorio interactivo 6 min 12 Tu primer script .py: del REPL al archivo 5 min 13 Editores e IDEs: qué hacen realmente con tu código 5 min 14 La indentación como sintaxis significativa en Python 4 min 15 Comentarios y docstrings: documentar código de forma útil 5 min 16 Identificadores, palabras reservadas y case-sensitivity 5 min 17 Cómo Python lee tu código: tokenización y parsing 7 min 18 Todo es un objeto en Python: un modelo que simplifica todo 5 min 19 Tipado dinámico: el tipo vive en el objeto, no en la variable 4 min 20 `int` en Python: precisión arbitraria y cómo funciona realmente 4 min 21 float: IEEE 754 y sus sorpresas inevitables 5 min 22 `bool` como subtipo de `int`: consecuencias reales 5 min 23 `None`: el singleton que representa ausencia de valor 5 min 24 Operadores aritméticos y sus particularidades en Python 4 min 25 Operadores de comparación y encadenamiento en Python 5 min 26 Operadores lógicos: and, or, not y su comportamiento real 4 min 27 `==` vs `is`: igualdad de valor vs identidad de objeto 5 min 28 Truthiness y falsiness en Python 5 min 29 Variables en Python: etiquetas, no cajas 4 min 30 Asignación múltiple, encadenada y aumentada en Python 6 min 31 Desempaquetado en Python: más allá del intercambio 7 min 32 Mutabilidad e inmutabilidad en Python 5 min 33 Referencias compartidas y aliasing en Python 4 min 34 Strings en Python: secuencias inmutables de code points Unicode 5 min 35 Indexación y slicing de strings en Python 6 min 36 f-strings: formato completo y debugging con el operador = 5 min 37 Métodos de string más usados en producción 8 min 38 `bytes` vs `str`: la distinción crítica que confunde a todos 6 min 39 Encoding y decoding en Python: bytes, Unicode y errores reales 6 min 40 Listas en Python: dynamic arrays, complejidad y métodos 6 min 41 Slicing avanzado de listas y el objeto slice 6 min 42 Tuple vs List: semántica, hashabilidad y rendimiento 6 min 43 dict: hash tables, orden de inserción y comprehensions 5 min 44 Internals de CPython: la tabla hash compacta del dict 8 min 45 `set` y `frozenset`: operaciones de conjunto y cuándo usarlos 5 min 46 List Comprehensions en profundidad 5 min 47 Generator expressions: lazy evaluation vs list comprehensions 6 min 48 `if`, `elif`, `else` y el operador ternario en Python 6 min 49 Pattern matching estructural en Python con match/case 7 min 50 Bucles for sobre iterables: el modelo correcto 5 min 51 `while`: iteración cuando no sabes cuántos ciclos necesitas 5 min 52 `break`, `continue` y el `else` de bucles en Python 5 min 53 Funciones en Python: def, return y objetos de primera clase 4 min 54 Argumentos posicionales vs keyword en Python 5 min 55 Valores por defecto y el bug de mutables como default 5 min 56 `*args` y `**kwargs`: funciones con argumentos variables 6 min 57 Argumentos posicional-only y keyword-only: / y * en firmas 5 min 58 Type hints en funciones: sintaxis, semántica y uso real 4 min 59 Scope y la regla LEGB en Python 6 min 60 `global` y `nonlocal`: modificar variables fuera del scope local 6 min 61 Funciones como objetos de primera clase en Python 7 min 62 Closures: funciones que recuerdan su entorno léxico 5 min 63 Qué es un módulo Python y qué ocurre al importarlo 5 min 64 `sys.path` al detalle: cómo Python localiza tus módulos 7 min 65 `if __name__ == “__main__”:` — qué hace realmente 4 min 66 Import absoluto vs relativo en Python 6 min 67 `__init__.py`, namespace packages y `__all__` en Python 9 min 68 Imports circulares en Python: causas, fallos y soluciones 5 min 69 Por qué los entornos virtuales no son opcionales en Python 5 min 70 `venv` por dentro: qué ocurre realmente al crear un entorno virtual 5 min 71 pip: gestión de paquetes en la práctica 5 min 72 `pyproject.toml` como estándar moderno de configuración 6 min 73 uv, Poetry y PDM: gestores modernos de dependencias 7 min 74 Dependencias transitivas y lockfiles en Python 8 min 75 Excepciones como flujo de control: EAFP vs LBYL en Python 5 min 76 try/except/else/finally: anatomía completa del manejo de excepciones 6 min 77 La jerarquía de excepciones built-in de Python 5 min 78 `raise`, re-raise y encadenamiento de excepciones 7 min 79 Crear excepciones propias correctamente en Python 6 min 80 ExceptionGroup y except*: múltiples excepciones simultáneas 5 min 81 `open()` y modos de apertura: texto y binario en Python 6 min 82 `with open(…)`: cierre garantizado de archivos en Python 5 min 83 Iteración eficiente sobre archivos grandes en Python 6 min 84 pathlib: el estándar moderno para rutas del filesystem 6 min 85 `tempfile`: archivos y directorios temporales seguros 6 min 86 Todo es un objeto en Python: identidad, tipo y valor 6 min 87 Dunder Methods: el protocolo abierto del modelo de datos 6 min 88 `__init__`, `__repr__` y `__str__`: los dunders fundamentales 5 min 89 Operadores como dunders: __eq__, __lt__, __add__ y reflejos 6 min 90 El protocolo de iteración: `__iter__` y `__next__` 5 min 91 El protocolo de contexto: `__enter__` y `__exit__` 6 min 92 Clases e instancias: qué ocurre al hacer `MiClase()` 5 min 93 Atributos de instancia vs atributos de clase en Python 6 min 94 `self` explicado de verdad: convención, no magia 4 min 95 Métodos de instancia, classmethod y staticmethod en Python 6 min 96 Herencia simple en Python 6 min 97 `super()` y la linearización C3 en Python 6 min 98 Herencia múltiple, MRO y Mixins en Python 6 min 99 `@property`: atributos computados y encapsulación real en Python 5 min 100 Encapsulación en Python: `_`, `__` y name mangling 6 min 101 Composición sobre herencia: el principio en la práctica 5 min 102 Clases abstractas con ABC 5 min 103 Protocols: duck typing con verificación estática 5 min 104 `dataclasses` en profundidad: internos y opciones avanzadas 6 min 105 __slots__: impacto real en memoria y velocidad 6 min 106 NamedTuple vs dataclass: criterios para elegir sin dudar 6 min 107 Iterable vs Iterator: la distinción que nadie explica bien 4 min 108 Cómo funciona el bucle for por dentro 5 min 109 `yield`: Ejecución pausada y estado preservado en generadores 5 min 110 `send()`, `throw()` y `close()` en generadores Python 8 min 111 `yield from`: delegación transparente a sub-generadores 6 min 112 `map`, `filter` y `reduce` vs comprehensions en Python 6 min 113 `lambda`: cuándo añade claridad y cuándo oscurece 5 min 114 `functools.partial`: aplicación parcial de funciones en Python 6 min 115 `functools.lru_cache` y `functools.cache`: memoización en Python 7 min 116 Decoradores: azúcar sintáctico desazucarado en Python 4 min 117 `functools.wraps`: preserva la identidad de funciones decoradas 5 min 118 Decoradores con argumentos: la triple anidación explicada 6 min 119 Decoradores de clase y decoradores con estado en Python 6 min 120 Decoradores en producción: patrones reales en Python 9 min 121 El protocolo `__enter__` / `__exit__` en detalle 6 min 122 `contextlib.contextmanager`: context managers con generadores 6 min 123 contextlib: ExitStack, suppress y otros utilitarios 7 min 124 Context Managers Asíncronos: Protocolos y Casos Reales 7 min 125 Por qué existen los type hints en un lenguaje dinámico 5 min 126 Sintaxis de type hints: tipos básicos y compuestos 6 min 127 TypeVar y Genéricos: Código con Tipo Preservado 5 min 128 TypedDict, NewType, Literal y Final en Python 6 min 129 Protocols para typing estructural en Python 6 min 130 mypy, pyright y pyrefly: verificadores estáticos en la práctica 7 min 131 Introspección en Python: dir, vars, getattr, setattr y hasattr 6 min 132 `__getattr__` vs `__getattribute__`: la diferencia que importa 7 min 133 Descriptores: el protocolo detrás de property, classmethod y los ORMs 8 min 134 Metaclases: qué son, cómo funcionan y cuándo usarlas 7 min 135 `__init_subclass__` como alternativa moderna a metaclases 6 min 136 El GIL de CPython: qué protege y qué cuesta 6 min 137 Threading para trabajo I/O-bound: cuándo sí ayuda 5 min 138 Sincronización entre threads: Lock, RLock, Event y Condition 7 min 139 `queue.Queue`: comunicación segura entre threads 6 min 140 `ThreadPoolExecutor`: la API de alto nivel para threads 7 min 141 Free-threaded Python: CPython sin GIL 7 min 142 Multiprocessing en Python: paralelismo real esquivando el GIL 7 min 143 `multiprocessing.Process` y `Pool`: creación y gestión de procesos 7 min 144 IPC en Python: Queue, Pipe y shared memory 8 min 145 fork vs spawn vs forkserver: el start method importa 8 min 146 multiprocessing y pickle: qué puede cruzar fronteras de proceso 7 min 147 Concurrencia cooperativa vs preemptiva en Python 5 min 148 El event loop de asyncio: qué es y cómo funciona 5 min 149 async/await: coroutines versus funciones normales en Python 4 min 150 gather, TaskGroup y wait_for: concurrencia real con asyncio 7 min 151 Async context managers e async iterators en Python 8 min 152 Código bloqueante dentro de async: el error que paraliza todo 6 min 153 asyncio: cuándo usarlo y cuándo evitarlo 7 min 154 HTTP con requests: Session, timeout y retry en producción 7 min 155 `httpx`: cliente HTTP sync y async con HTTP/2 y timeouts granulares 7 min 156 Streaming HTTP y WebSockets en Python 7 min 157 pytest: fixtures, marks y parametrize en la práctica 6 min 158 Mocking con unittest.mock: Mock, MagicMock y patch 7 min 159 Coverage y property-based testing con Hypothesis 5 min 160 La jerarquía de loggers y por qué print no escala 5 min 161 Handlers, formatters y dictConfig en Python logging 6 min 162 Logging estructurado con structlog 6 min 163 `pdb` y `breakpoint()`: debugging interactivo en la terminal 5 min 164 Profiling en Python: cProfile, pstats y py-spy 6 min 165 Memory profiling en Python: tracemalloc y cómo cazar leaks 7 min 166 La regla de oro: medir antes de optimizar en Python 7 min 167 Optimizaciones reales en código Python puro 7 min 168 NumPy como escape hatch para cálculos numéricos 5 min 169 Cython, Numba y mypyc: compilar Python para casos extremos 8 min 170 Del `.py` al bytecode: el pipeline de compilación de CPython 6 min 171 El módulo dis: leer e interpretar bytecode Python 6 min 172 Reference counting y GC generacional en CPython 8 min 173 Frame objects y el stack de ejecución de CPython 7 min 174 El ecosistema de packaging moderno post-pyproject.toml 5 min 175 src-layout vs flat-layout en paquetes Python publicables 5 min 176 Publicar en PyPI: proceso completo con twine y uv 7 min 177 Wheels, sdists y extensiones C en Python 7 min 178 Flask: routing, request y response en profundidad 8 min 179 FastAPI: tipos, validación automática y OpenAPI 8 min 180 WSGI vs ASGI: la interfaz que define tu servidor de producción 8 min 181 DB-API 2.0 y sqlite3: el estándar de la stdlib 6 min 182 SQLAlchemy Core vs ORM y cuándo usar cada uno 7 min 183 Pools, transacciones y migraciones con Alembic en Python 9 min 184 JSON en Python: stdlib, encoders custom y alternativas rápidas 6 min 185 `pickle`: serialización total de objetos Python y sus riesgos 7 min 186 Pydantic v2 y msgspec: validación y serialización robusta 6 min 187 TOML, YAML y formatos de configuración en Python 5 min 188 NumPy: arrays, dtypes, broadcasting y operaciones vectorizadas 5 min 189 pandas: DataFrames, indexación correcta y operaciones clave 6 min 190 Polars como alternativa moderna a pandas 6 min 191 `argparse`: CLIs robustas con la stdlib 7 min 192 `click` y `typer`: CLIs expresivas con decoradores y tipos 7 min 193 `sys.argv`, streams estándar y códigos de salida en Python 6 min 194 subprocess.run: la API moderna para ejecutar procesos 6 min 195 `shell=True`: riesgos, alternativas y casos legítimos 6 min 196 `subprocess.Popen` para streaming y control de procesos 6 min 197 `eval()` y `exec()`: RCE por diseño y alternativas seguras 7 min 198 Secrets management: credenciales fuera del código, siempre 6 min 199 Validación de input y prevención de SQL injection 7 min 200 hashlib e integridad de dependencias en Python 6 min 201 PEP 8, black y ruff: el estilo que no se discute 5 min 202 Ruff: un linter completo a la velocidad de Rust 5 min 203 Estructura de proyectos Python reales 8 min 204 Inyección de dependencias en Python sin frameworks pesados 7 min 205 Pre-commit hooks y flujo de trabajo profesional en Python 6 min 206 PEPs clave que todo pythonista debería haber leído 8 min 207 Monorepos en Python con uv workspaces 6 min 208 Jupyter Notebooks: Exploración Sí, Producción No 6 min 209 Internacionalización en Python con gettext y Babel 7 min 210 gRPC en Python: servicios eficientes entre microservicios 10 min 211 Migrar tu proyecto a una nueva versión de Python sin dramas 8 min 212 Observabilidad en Python: logs, métricas y trazas unificadas 11 min 213 Python en Docker: imágenes eficientes y seguras 7 min 214 Datetime, timezone y los bugs de fecha que todos cometen 6 min 215 Decimal vs float para dinero y precisión numérica 6 min 216 Regex en Python: Compilación, Grupos, Lookarounds y Backtracking 8 min 217 Memory Leaks en Python: Cómo Aparecen y Cómo Cazarlos 8 min 218 Entry Points y sistemas extensibles con plugins en Python 8 min 219 Async workers y task queues: Celery, RQ y ARQ 9 min 220 Type Checking Gradual en Python sin Romper tu Codebase 6 min