Contenido de la documentación de Python¶
- Qué hay de nuevo en Python
- What’s New In Python 3.9
- Summary – Release highlights
- You should check for DeprecationWarning in your code
- New Features
- Other Language Changes
- New Modules
- Improved Modules
- ast
- asyncio
- compileall
- concurrent.futures
- curses
- datetime
- distutils
- fcntl
- ftplib
- gc
- hashlib
- http
- IDLE and idlelib
- imaplib
- importlib
- inspect
- ipaddress
- math
- multiprocessing
- nntplib
- os
- pathlib
- pdb
- poplib
- pprint
- pydoc
- random
- signal
- smtplib
- socket
- time
- sys
- tempfile
- tracemalloc
- typing
- unicodedata
- venv
- xml
- Optimizations
- Deprecated
- Removed
- Porting to Python 3.9
- Build Changes
- C API Changes
- Notable changes in Python 3.9.1
- Notable changes in Python 3.9.2
- Notable changes in Python 3.9.3
- Notable changes in Python 3.9.5
- Notable security feature in 3.9.14
- Notable Changes in 3.9.17
- Notable changes in 3.9.20
- Notable changes in 3.9.23
- Qué hay de nuevo en Python 3.8
- Resumen – Aspectos destacados de la versión
- Nuevas características
- Expresiones de asignación
- Parámetros solo posicionales
- Caché del sistema de archivos paralelo para archivos de bytecode compilados
- La compilación de depuración usa la misma ABI que la compilación de lanzamiento
- los f-strings soportan
=para expresiones autodocumentadas y depuración - PEP 578: Ganchos de auditoría en tiempo de ejecución de Python
- PEP 587: Configuración de inicialización de Python
- PEP 590: Vectorcall: un protocolo de llamada rápida para CPython
- Protocolo 5 de Pickle con búferes de datos fuera de banda
- Otros cambios en el lenguaje
- Nuevos módulos
- Módulos mejorados
- ast
- asyncio
- builtins
- collections
- cProfile
- csv
- curses
- ctypes
- datetime
- functools
- gc
- gettext
- gzip
- IDLE e idlelib
- inspect
- io
- itertools
- json.tool
- logging
- math
- mmap
- multiprocessing
- os
- os.path
- pathlib
- pickle
- plistlib
- pprint
- py_compile
- shlex
- shutil
- socket
- ssl
- statistics
- sys
- tarfile
- threading
- tokenize
- tkinter
- time
- typing
- unicodedata
- unittest
- venv
- weakref
- xml
- xmlrpc
- Optimizaciones
- Cambios en la compilación y la API de C
- Obsoleto
- APIs y características eliminadas
- Portando a Python 3.8
- Cambios notables en Python 3.8.1
- Cambios notables en Python 3.8.8
- Notable changes in Python 3.8.12
- Que hay de nuevo en Python 3.7
- Resumen – Lanzamientos Destacados
- Nuevas Características
- PEP 563: Evaluación pospuesta de anotaciones
- PEP 538: Coerción de configuración regional del Legado de C
- PEP 540: Modo de tiempo de ejecución UTF-8 forzado
- PEP 553: Incorporada en
breakpoint() - PEP 539: Nueva API C para almacenamiento local de subprocesos
- PEP 562: Personalización del acceso a los atributos del módulo
- PEP 564: Nuevas funciones de tiempo con resolución de nanosegundos
- PEP 565: Mostrar DeprecationWarning en
__main__ - PEP 560: Soporte básico para el módulo de
typingy tipos genéricos - PEP 552: Archivos .pyc basados en hash
- PEP 545: Traducciones de Documentaciones de Python
- Modo de desarrollo de Python (-X dev)
- Otros cambios en el lenguaje
- Nuevos módulos
- Módulos mejorados
- argparse
- asyncio
- binascii
- calendar
- collections
- compileall
- concurrent.futures
- contextlib
- cProfile
- crypt
- datetime
- dbm
- decimal
- dis
- distutils
- enum
- functools
- gc
- hmac
- http.client
- http.server
- idlelib and IDLE
- importlib
- io
- ipaddress
- itertools
- locale
- logging
- math
- mimetypes
- msilib
- multiprocessing
- os
- pathlib
- pdb
- py_compile
- pydoc
- queue
- re
- signal
- socket
- socketserver
- sqlite3
- ssl
- string
- subprocess
- sys
- time
- tkinter
- tracemalloc
- types
- unicodedata
- unittest
- unittest.mock
- urllib.parse
- uu
- uuid
- warnings
- xml.etree
- xmlrpc.server
- zipapp
- zipfile
- Cambios en la API C
- Construir cambios
- Optimizaciones
- Otros cambios de implementación de CPython
- Comportamiento obsoleto de Python
- Módulos, funciones y métodos de Python obsoletos
- Funciones y tipos obsoletos de la API C
- Eliminación de soporte de plataforma
- Eliminaciones de API y funciones
- Eliminaciones de módulos
- Cambios solo en Windows
- Portando a Python 3.7
- Cambios notables en Python 3.7.1
- Cambios notables en Python 3.7.2
- Cambios notables en Python 3.7.6
- Cambios notables en Python 3.7.10
- What’s New In Python 3.6
- Summary – Release highlights
- New Features
- PEP 498: Formatted string literals
- PEP 526: Syntax for variable annotations
- PEP 515: Underscores in Numeric Literals
- PEP 525: Asynchronous Generators
- PEP 530: Asynchronous Comprehensions
- PEP 487: Simpler customization of class creation
- PEP 487: Descriptor Protocol Enhancements
- PEP 519: Adding a file system path protocol
- PEP 495: Local Time Disambiguation
- PEP 529: Change Windows filesystem encoding to UTF-8
- PEP 528: Change Windows console encoding to UTF-8
- PEP 520: Preserving Class Attribute Definition Order
- PEP 468: Preserving Keyword Argument Order
- New dict implementation
- PEP 523: Adding a frame evaluation API to CPython
- PYTHONMALLOC environment variable
- DTrace and SystemTap probing support
- Other Language Changes
- New Modules
- Improved Modules
- array
- ast
- asyncio
- binascii
- cmath
- collections
- concurrent.futures
- contextlib
- datetime
- decimal
- distutils
- encodings
- enum
- faulthandler
- fileinput
- hashlib
- http.client
- idlelib and IDLE
- importlib
- inspect
- json
- logging
- math
- multiprocessing
- os
- pathlib
- pdb
- pickle
- pickletools
- pydoc
- random
- re
- readline
- rlcompleter
- shlex
- site
- sqlite3
- socket
- socketserver
- ssl
- statistics
- struct
- subprocess
- sys
- telnetlib
- time
- timeit
- tkinter
- traceback
- tracemalloc
- typing
- unicodedata
- unittest.mock
- urllib.request
- urllib.robotparser
- venv
- warnings
- winreg
- winsound
- xmlrpc.client
- zipfile
- zlib
- Optimizations
- Build and C API Changes
- Other Improvements
- Deprecated
- Removed
- Porting to Python 3.6
- Notable changes in Python 3.6.2
- Notable changes in Python 3.6.4
- Notable changes in Python 3.6.5
- Notable changes in Python 3.6.7
- Notable changes in Python 3.6.10
- Notable changes in Python 3.6.13
- Qué hay de nuevo en Python 3.5
- Resumen – Aspectos destacados de la versión
- Nuevas características
- PEP 492 - Corrutinas con sintaxis async y await
- PEP 465 - Un operador infijo dedicado para la multiplicación de matrices
- PEP 448 - Generalizaciones de desembalaje adicionales
- PEP 461 - soporte de formateo porcentual para bytes y bytearray
- PEP 484 - Indicador de tipos
- PEP 471 - Función os.scandir() – un iterador de directorio mejor y más rápido
- PEP 475: Reintentar las llamadas al sistema que fallan con EINTR
- PEP 479: Cambiar el gestor de StopIteration dentro de generadores
- PEP 485: Una función para probar la igualdad aproximada
- PEP 486: Hacer que el launcher de Python sea consciente de los entornos virtuales
- PEP 488: Eliminación de archivos PYO
- PEP 489: Inicialización del módulo de extensión multifase
- Otros cambios en el lenguaje
- Nuevos módulos
- Módulos mejorados
- argparse
- asyncio
- bz2
- cgi
- cmath
- code
- collections
- collections.abc
- compileall
- concurrent.futures
- configparser
- contextlib
- csv
- curses
- dbm
- difflib
- distutils
- doctest
- enum
- faulthandler
- functools
- glob
- gzip
- heapq
- http
- http.client
- idlelib e IDLE
- imaplib
- imghdr
- importlib
- inspect
- io
- ipaddress
- json
- linecache
- locale
- logging
- lzma
- math
- multiprocessing
- operator
- os
- pathlib
- pickle
- poplib
- re
- readline
- selectors
- shutil
- signal
- smtpd
- smtplib
- sndhdr
- socket
- ssl
- sqlite3
- subprocess
- sys
- sysconfig
- tarfile
- threading
- time
- timeit
- tkinter
- traceback
- types
- unicodedata
- unittest
- unittest.mock
- urllib
- wsgiref
- xmlrpc
- xml.sax
- zipfile
- Otros cambios a nivel de módulo
- Optimizaciones
- Cambios en la compilación y la API de C
- Obsoleto
- Eliminado
- Portando a Python 3.5
- Cambios notables en Python 3.5.4
- What’s New In Python 3.4
- Summary – Release Highlights
- New Features
- New Modules
- Improved Modules
- abc
- aifc
- argparse
- audioop
- base64
- collections
- colorsys
- contextlib
- dbm
- dis
- doctest
- filecmp
- functools
- gc
- glob
- hashlib
- hmac
- html
- http
- idlelib and IDLE
- importlib
- inspect
- ipaddress
- logging
- marshal
- mmap
- multiprocessing
- operator
- os
- pdb
- pickle
- plistlib
- poplib
- pprint
- pty
- pydoc
- re
- resource
- select
- shelve
- shutil
- smtpd
- smtplib
- socket
- sqlite3
- ssl
- stat
- struct
- subprocess
- sunau
- sys
- tarfile
- textwrap
- threading
- traceback
- types
- urllib
- unittest
- venv
- wave
- weakref
- xml.etree
- zipfile
- CPython Implementation Changes
- Deprecated
- Removed
- Porting to Python 3.4
- Changed in 3.4.3
- Que novedades hay en python 3.3
- Resumen – aspectos destacados de la versión
- PEP 405: Entornos virtuales
- PEP 420: Paquetes para espacios de nombres implícitos
- PEP 3118: Nueva implementación de vista de memoria y en la documentación del protocolo del buffer
- PEP 393: Representación flexible de cadenas de caracteres
- PEP 397: Lanzador de python para windows
- PEP 3151: Reelaborando de la jerarquía de excepciones de IO y OS
- PEP 380: Sintaxis para delegar en un subgenerador
- PEP 409: Suprimir el contexto de excepción
- PEP 414: Literales Unicode explícitos
- PEP 3155: Nombres calificados para clases y funciones
- PEP 412: Diccionario de intercambio de claves
- PEP 362: Objeto de firma de función
- PEP 421: Agregar sys.implementation
- Usar importlib como implementación de Import
- Otros cambios de idioma
- Un bloqueo de importación más detallado
- Funciones y tipos incorporados
- Nuevos módulos
- Módulos mejorados
- abc
- array
- base64
- binascii
- bz2
- códecs
- colecciones
- contextlib
- crypt
- curses
- datetime
- decimal
- ftplib
- functools
- gc
- hmac
- http
- html
- imaplib
- inspect
- io
- itertools
- logging
- math
- mmap
- multiprocesamiento
- nntplib
- os
- pdb
- pickle
- pydoc
- re
- sched
- select
- shlex
- shutil
- signal
- smtpd
- smtplib
- socket
- socketserver
- sqlite3
- ssl
- stat
- struct
- subprocess
- sys
- tarfile
- tempfile
- textwrap
- threading
- time
- types
- unittest
- urllib
- webbrowser
- xml.etree.ElementTree
- zlib
- Optimizaciones
- Construcción y cambios en la API de C
- Obsoleto
- Migración a Python 3.3
- Qué hay de nuevo en Python 3.2
- PEP 384: Definición de un ABI estable
- PEP 389: Módulo de análisis sintáctico (Parser) de línea de comandos Argparse
- PEP 391: Configuración basada en diccionario para Logging
- PEP 3148: El módulo
concurrent.futures - PEP 3147: Directorios del repositorio de PYC
- PEP 3149: Archivos .so con etiquetado de versión para ABI
- PEP 3333: Interfaz de puerta de enlace del servidor web Python v1.0.1
- Otros cambios de lenguaje
- Módulos nuevos, mejorados y obsoletos
- elementtree
- functools
- itertools
- collections
- threading
- datetime and time
- math
- abc
- io
- reprlib
- logging
- csv
- contextlib
- decimal and fractions
- ftp
- popen
- select
- gzip y zipfile
- tarfile
- hashlib
- ast
- os
- shutil
- sqlite3
- html
- socket
- ssl
- nntp
- certificados
- imaplib
- http.client
- unittest
- random
- poplib
- asyncore
- tempfile
- inspect
- pydoc
- dis
- dbm
- ctypes
- site
- sysconfig
- pdb
- configparser
- urllib.parse
- mailbox
- turtledemo
- Multi-threading
- Optimizations
- Unicode
- Codecs
- Documentación
- IDLE
- Repositorio de código
- Cambios en la API de construcción y C
- Portar a Python 3.2
- Qué hay de nuevo en Python 3.1
- Qué hay de nuevo en Python 3.0
- Escollos comunes
- Descripción general de los cambios de sintaxis
- Cambios ya presentes en Python 2.6
- Cambios de biblioteca
- PEP 3101: Un nuevo enfoque al formateo de cadena de caracteres
- Cambios a excepciones
- Otros cambios diversos
- Construcción y cambios a la API de C
- Rendimiento
- Migración a Python 3.0
- Qué hay de nuevo en Python 2.7
- El futuro de Python 2.x
- Cambios en el manejo de las advertencias de desuso
- Características de Python 3.1
- PEP 372: Adición de un diccionario ordenado a las colecciones
- PEP 378: Especificador de formato para separador de miles
- PEP 389: El módulo argparse para el análisis de líneas de comando
- PEP 391: Configuración basada en diccionarios para el registro
- PEP 3106: Vistas de diccionario
- PEP 3137: El objeto memoryview
- Otros cambios de lenguaje
- New and Improved Modules
- Build and C API Changes
- Other Changes and Fixes
- Porting to Python 2.7
- New Features Added to Python 2.7 Maintenance Releases
- Two new environment variables for debug mode
- PEP 434: IDLE Enhancement Exception for All Branches
- PEP 466: Network Security Enhancements for Python 2.7
- PEP 477: Backport ensurepip (PEP 453) to Python 2.7
- PEP 476: Enabling certificate verification by default for stdlib http clients
- PEP 493: HTTPS verification migration tools for Python 2.7
- New
make regen-allbuild target - Removal of
make touchbuild target
- Acknowledgements
- Qué hay de nuevo en Python 2.6
- Python 3.0
- Cambios en el proceso de desarrollo
- PEP 343: La sentencia “with”
- PEP 366: Importaciones relativas explícitas desde un módulo principal
- PEP 370: Directorio de
site-packagespor usuario - PEP 371: El paquete
multiprocessing - PEP 3101: Formateo avanzado de cadena de caracteres
- PEP 3105:
printAs a Function - PEP 3110: Exception-Handling Changes
- PEP 3112: Byte Literals
- PEP 3116: New I/O Library
- PEP 3118: Revised Buffer Protocol
- PEP 3119: Abstract Base Classes
- PEP 3127: Integer Literal Support and Syntax
- PEP 3129: Class Decorators
- PEP 3141: A Type Hierarchy for Numbers
- Other Language Changes
- New and Improved Modules
- Deprecations and Removals
- Build and C API Changes
- Porting to Python 2.6
- Agradecimientos
- Novedades de Python 2.5
- PEP 308: Expresiones condicionales
- PEP 309: Aplicación parcial de funciones
- PEP 314: Metadatos para paquetes de software Python v1.1
- PEP 328: Importaciones absolutas y relativas
- PEP 338: Ejecutando Módulos como Scripts
- PEP 341: Try/except/finally unificados
- PEP 342: Nuevas funciones del generador
- PEP 343: La declaración «con
- PEP 352: Las excepciones como clases de nuevo estilo
- PEP 353: Uso de ssize_t como tipo de índice
- PEP 357: El método “__index__”
- Otros cambios lingüísticos
- Módulos nuevos, mejorados y eliminados
- Cambios en la API de construcción y C
- Adaptación a Python 2.5
- Agradecimientos
- What’s New in Python 2.4
- PEP 218: Built-In Set Objects
- PEP 237: Unifying Long Integers and Integers
- PEP 289: Generator Expressions
- PEP 292: Simpler String Substitutions
- PEP 318: Decorators for Functions and Methods
- PEP 322: Reverse Iteration
- PEP 324: New subprocess Module
- PEP 327: Decimal Data Type
- PEP 328: Multi-line Imports
- PEP 331: Locale-Independent Float/String Conversions
- Other Language Changes
- New, Improved, and Deprecated Modules
- Build and C API Changes
- Porting to Python 2.4
- Acknowledgements
- Qué hay de nuevo en Python 2.3
- PEP 218: Un tipo de datos de conjunto estándar
- PEP 255: Generadores simples
- PEP 263: Codificación del código fuente
- PEP 273: Importar módulos desde archivos ZIP
- PEP 277: Soporte de nombres de archivo Unicode para Windows NT
- PEP 278: Soporte universal de nuevas líneas
- PEP 279: enumerate()
- PEP 282: El paquete de registro
- PEP 285: Un tipo booleano
- PEP 293: Llamadas de retorno para el manejo de errores del códec
- PEP 301: Índice de paquetes y metadatos para Distutils
- PEP 302: Nuevos ganchos de importación
- PEP 305: Archivos separados por comas
- PEP 307: Mejoras en Pickle
- Rebanadas ampliadas
- Otros cambios en el lenguaje
- Módulos nuevos, mejorados y obsoletos
- Pymalloc: A Specialized Object Allocator
- Build and C API Changes
- Other Changes and Fixes
- Porting to Python 2.3
- Acknowledgements
- Qué hay de nuevo en Python 2.2
- Introducción
- PEPs 252 y 253: Cambios de tipo y clase
- PEP 234: Iteradores
- PEP 255: Generadores simples
- PEP 237: Unificación de enteros largos y enteros
- PEP 238: Cambio del operador de división
- Cambios en Unicode
- PEP 227: Ámbitos anidados
- Módulos nuevos y mejorados
- Cambios y correcciones en el intérprete
- Otros cambios y correcciones
- Agradecimientos
- Novedades de Python 2.1
- Introducción
- PEP 227: Ámbitos anidados
- PEP 236: Directivas __future__
- PEP 207: Comparaciones Enriquecidas
- PEP 230: Marco de advertencia
- PEP 229: Sistema de construcción nuevo
- PEP 205: Referencias débiles
- PEP 232: Atributos de la función
- PEP 235: Importación de módulos en plataformas que no distinguen entre mayúsculas y minúsculas
- PEP 217: Gancho de pantalla interactivo
- PEP 208: Nuevo modelo de coerción
- PEP 241: Metadatos en paquetes de Python
- Módulos nuevos y mejorados
- Otros cambios y correcciones
- Agradecimientos
- Novedades de Python 2.0
- Introducción
- ¿Qué pasa con Python 1.6?
- Nuevo proceso de desarrollo
- Unicode
- Comprensión de listas
- Asignación aumentada
- Métodos de cadena de caracteres
- Recogida de basura de los ciclos
- Otros cambios en el núcleo
- Adaptación a la versión 2.0
- Extensión/Incorporación de cambios
- Distutils: Facilitando la instalación de módulos
- Módulos XML
- Cambios en los módulos
- Nuevos módulos
- Mejoras en IDLE
- Módulos eliminados y obsoletos
- Agradecimientos
- Changelog
- Python next
- Python 3.9.24 final
- Python 3.9.23 final
- Python 3.9.22 final
- Python 3.9.21 final
- Python 3.9.20 final
- Python 3.9.19 final
- Python 3.9.18 final
- Python 3.9.17 final
- Python 3.9.16 final
- Python 3.9.15 final
- Python 3.9.14 final
- Python 3.9.13 final
- Python 3.9.12 final
- Python 3.9.11 final
- Python 3.9.10 final
- Python 3.9.9 final
- Python 3.9.8 final
- Python 3.9.7 final
- Python 3.9.6 final
- Python 3.9.5 final
- Python 3.9.4 final
- Python 3.9.3 final
- Python 3.9.2 final
- Python 3.9.2 release candidate 1
- Python 3.9.1 final
- Python 3.9.1 release candidate 1
- Python 3.9.0 final
- Python 3.9.0 release candidate 2
- Python 3.9.0 release candidate 1
- Python 3.9.0 beta 5
- Python 3.9.0 beta 4
- Python 3.9.0 beta 3
- Python 3.9.0 beta 2
- Python 3.9.0 beta 1
- Python 3.9.0 alpha 6
- Python 3.9.0 alpha 5
- Python 3.9.0 alpha 4
- Python 3.9.0 alpha 3
- Python 3.9.0 alpha 2
- Python 3.9.0 alpha 1
- Python 3.8.0 beta 1
- Python 3.8.0 alpha 4
- Python 3.8.0 alpha 3
- Python 3.8.0 alpha 2
- Python 3.8.0 alpha 1
- Python 3.7.0 final
- Python 3.7.0 release candidate 1
- Python 3.7.0 beta 5
- Python 3.7.0 beta 4
- Python 3.7.0 beta 3
- Python 3.7.0 beta 2
- Python 3.7.0 beta 1
- Python 3.7.0 alpha 4
- Python 3.7.0 alpha 3
- Python 3.7.0 alpha 2
- Python 3.7.0 alpha 1
- Python 3.6.6 final
- Python 3.6.6 release candidate 1
- Python 3.6.5 final
- Python 3.6.5 release candidate 1
- Python 3.6.4 final
- Python 3.6.4 release candidate 1
- Python 3.6.3 final
- Python 3.6.3 release candidate 1
- Python 3.6.2 final
- Python 3.6.2 release candidate 2
- Python 3.6.2 release candidate 1
- Python 3.6.1 final
- Python 3.6.1 release candidate 1
- Python 3.6.0 final
- Python 3.6.0 release candidate 2
- Python 3.6.0 release candidate 1
- Python 3.6.0 beta 4
- Python 3.6.0 beta 3
- Python 3.6.0 beta 2
- Python 3.6.0 beta 1
- Python 3.6.0 alpha 4
- Python 3.6.0 alpha 3
- Python 3.6.0 alpha 2
- Python 3.6.0 alpha 1
- Python 3.5.5 final
- Python 3.5.5 release candidate 1
- Python 3.5.4 final
- Python 3.5.4 release candidate 1
- Python 3.5.3 final
- Python 3.5.3 release candidate 1
- Python 3.5.2 final
- Python 3.5.2 release candidate 1
- Python 3.5.1 final
- Python 3.5.1 release candidate 1
- Python 3.5.0 final
- Python 3.5.0 release candidate 4
- Python 3.5.0 release candidate 3
- Python 3.5.0 release candidate 2
- Python 3.5.0 release candidate 1
- Python 3.5.0 beta 4
- Python 3.5.0 beta 3
- Python 3.5.0 beta 2
- Python 3.5.0 beta 1
- Python 3.5.0 alpha 4
- Python 3.5.0 alpha 3
- Python 3.5.0 alpha 2
- Python 3.5.0 alpha 1
- What’s New In Python 3.9
- Tutorial de Python
- 1. Abriendo el apetito
- 2. Usando el intérprete de Python
- 3. Una introducción informal a Python
- 4. Más herramientas para control de flujo
- 4.1. La sentencia
if - 4.2. La sentencia
for - 4.3. La función
range() - 4.4. Las sentencias
break,continue, yelseen bucles - 4.5. La sentencia
pass - 4.6. Definiendo funciones
- 4.7. Más sobre definición de funciones
- 4.8. Intermezzo: Estilo de codificación
- 4.1. La sentencia
- 5. Estructuras de datos
- 6. Módulos
- 7. Entrada y salida
- 8. Errores y excepciones
- 9. Clases
- 10. Pequeño paseo por la Biblioteca Estándar
- 10.1. Interfaz al sistema operativo
- 10.2. Comodines de archivos
- 10.3. Argumentos de linea de órdenes
- 10.4. Redirigir la salida de error y finalización del programa
- 10.5. Coincidencia en patrones de cadenas
- 10.6. Matemática
- 10.7. Acceso a Internet
- 10.8. Fechas y tiempos
- 10.9. Compresión de datos
- 10.10. Medición de rendimiento
- 10.11. Control de calidad
- 10.12. Las pilas incluidas
- 11. Pequeño paseo por la Biblioteca Estándar— Parte II
- 12. Entornos Virtuales y Paquetes
- 13. ¿Y ahora qué?
- 14. Edición de entrada interactiva y sustitución de historial
- 15. Aritmética de Punto Flotante: Problemas y Limitaciones
- 16. Apéndice
- Configuración y Uso de Python
- 1. Línea de comandos y entorno
- 2. Uso de Python en plataformas Unix
- 3. Uso de Python en Windows
- 3.1. El instalador completo
- 3.2. El paquete Microsoft Store
- 3.3. El paquete de nuget.org
- 3.4. El paquete incrustable
- 3.5. Distribuciones alternativas
- 3.6. Configuración de Python
- 3.7. Modo UTF-8
- 3.8. Lanzador de Python para Windows
- 3.9. Encontrar módulos
- 3.10. Módulos adicionales
- 3.11. Compilar Python en Windows
- 3.12. Otras plataformas
- 4. Using Python on a Mac
- 5. Editores e IDEs
- Referencia del Lenguaje Python
- 1. Introducción
- 2. Análisis léxico
- 3. Modelo de datos
- 3.1. Objetos, valores y tipos
- 3.2. Jerarquía de tipos estándar
- 3.3. Nombres especiales de método
- 3.3.1. Personalización básica
- 3.3.2. Personalizando acceso a atributos
- 3.3.3. Personalización de creación de clases
- 3.3.4. Personalizando revisiones de instancia y subclase
- 3.3.5. Emulando tipos genéricos
- 3.3.6. Emulando objetos que se pueden llamar
- 3.3.7. Emulando tipos de contenedores
- 3.3.8. Emulando tipos numéricos
- 3.3.9. Gestores de Contexto en la Declaración with
- 3.3.10. Búsqueda de método especial
- 3.4. Corrutinas
- 4. Modelo de ejecución
- 5. El sistema de importación
- 6. Expresiones
- 6.1. Conversiones aritméticas
- 6.2. Átomos
- 6.3. Primarios
- 6.4. Expresión await
- 6.5. El operador de potencia
- 6.6. Aritmética unaria y operaciones bit a bit
- 6.7. Operaciones aritméticas binarias
- 6.8. Operaciones de desplazamiento
- 6.9. Operaciones bit a bit binarias
- 6.10. Comparaciones
- 6.11. Operaciones booleanas
- 6.12. Expresiones de asignación
- 6.13. Expresiones condicionales
- 6.14. Lambdas
- 6.15. Listas de expresiones
- 6.16. Orden de evaluación
- 6.17. Prioridad de operador
- 7. Declaraciones simples
- 7.1. Declaraciones de tipo expresión
- 7.2. Declaraciones de asignación
- 7.3. La declaración
assert - 7.4. La declaración
pass - 7.5. La declaración
del - 7.6. La declaración
return - 7.7. La declaración
yield - 7.8. La declaración
raise - 7.9. La declaración
break - 7.10. La declaración
continue - 7.11. La declaración
import - 7.12. La declaración
global - 7.13. La declaración
nonlocal
- 8. Sentencias compuestas
- 9. Componentes de nivel superior
- 10. Especificación completa de la gramática
- La Biblioteca Estándar de Python
- Introducción
- Funciones Built-in
- Constantes incorporadas
- Tipos Integrados
- Evaluar como valor verdadero/falso
- Operaciones booleanas —
and,or,not - Comparaciones
- Tipos numéricos —
int,float,complex - Tipos de iteradores
- Tipos secuencia —
list,tuple,range - Cadenas de caracteres —
str - Tipos de secuencias binarias —
bytes,bytearrayymemoryview - Conjuntos —
set,frozenset - Tipos Mapa —
dict - Tipos Gestores de Contexto
- Tipo Alias Genérico
- Otros tipos predefinidos
- Atributos especiales
- Integer string conversion length limitation
- Excepciones incorporadas
- Servicios de procesamiento de texto
string— Operaciones comunes de cadena de caracteresre— Operaciones con expresiones regularesdifflib— Funciones auxiliares para calcular deltastextwrap— Envoltura y relleno de textounicodedata— Base de datos Unicodestringprep— Preparación de cadenas de Internetreadline— Interfaz readline de GNUrlcompleter— Función de completado para GNU readline
- Servicios de datos binarios
struct— Interpreta bytes como paquetes de datos binarioscodecs— Registro de códec y clases base
- Tipos de datos
datetime— Tipos básicos de fecha y horazoneinfo— Soporte de zona horaria IANAcalendar— Funciones generales relacionadas con el calendariocollections— Tipos de datos contenedorcollections.abc— Clases Base Abstractas para Contenedoresheapq— Algoritmo de colas montículos (heap)bisect— Algoritmo de bisección de arreglosarray— Arreglos eficientes de valores numéricosweakref— Referencias débilestypes— Creación de tipos dinámicos y nombres para tipos integradoscopy— Operaciones de copia superficial y profundapprint— Impresión bonita de datosreprlib— Implementaciónrepr()alternativaenum— Soporte para enumeraciones- Contenido del Módulo
- Creando un Enum
- Acceso programático a los miembros de la enumeración y sus atributos
- Duplicando miembros y valores enum
- Garantizando valores de enumeración únicos
- Usando valores automáticos
- Iteración
- Comparaciones
- Miembros permitidos y atributos de enumeraciones
- Subclases restringidas de Enum
- Serialización
- API Funcional
- Enumeraciones derivadas
- Cuándo usar
__new__()contra__init__() - Ejemplos interesantes
- ¿Cómo son diferentes las Enums?
graphlib— Functionality to operate with graph-like structures
- Módulos numéricos y matemáticos
numbers— Clase base abstracta numéricamath— Funciones matemáticascmath– Función matemática para números complejosdecimal— Aritmética decimal de coma fija y coma flotantefractions— Números racionalesrandom—Generar números pseudoaleatoriosstatistics— Funciones de estadística matemática
- Módulos de programación funcional
- Acceso a archivos y directorios
pathlib— Object-oriented filesystem pathsos.path— Manipulaciones comunes de nombre de rutafileinput— Iterar sobre líneas de múltiples flujos de entradastat— Interpretación de los resultados destat()filecmp— Comparaciones de Archivo y Directoriotempfile— Generar archivos y directorios temporalesglob— Expansión del patrón de nombres de ruta de estilo Unixfnmatch— Coincidencia de patrones de nombre de archivos Unixlinecache— Acceso aleatorio a líneas de textoshutil— Operaciones de archivos de alto nivel
- Persistencia de datos
pickle— Serialización de objetos Python- Relación con otros módulos de Python
- Formato de flujo de datos
- Interfaz del módulo
- ¿Qué se puede serializar (pickled) y deserializar (unpickled) con pickle?
- Pickling de Instancias de clases
- Reducción personalizada para tipos, funciones y otros objetos
- Búferes fuera de banda
- Restricción de Globals
- Performance
- Ejemplos
copyreg— Registrar funciones de soporte depickleshelve— Persistencia de objetos de Pythonmarshal— Serialización interna de objetos Pythondbm— Interfaces para «bases de datos» de Unixsqlite3— DB-API 2.0 interfaz para bases de datos SQLite
- Compresión de datos y archivado
- Formatos de archivo
- Servicios Criptográficos
- Servicios genéricos del sistema operativo
os— Interfaces misceláneas del sistema operativoio— Herramientas principales para trabajar con streamstime— Tiempo de acceso y conversionesargparse— Analizador sintáctico (Parser) para las opciones, argumentos y sub-comandos de la línea de comandosgetopt— Analizador de estilo C para opciones de línea de comandologging— Instalación de logging para Pythonlogging.config— Configuración de registrologging.handlers— Gestores de logginggetpass— Entrada de contraseña portátilcurses— Manejo de terminales para pantallas de celdas de caracterescurses.textpad— Widget de entrada de texto para programas de cursescurses.ascii— Utilidades para los caracteres ASCIIcurses.panel— Una extensión de pila de panel para cursesplatform— Acceso a los datos identificativos de la plataforma subyacenteerrno— Símbolos estándar del sistema errnoctypes— Una biblioteca de funciones foráneas para Python- tutorial de ctypes
- Carga de bibliotecas de enlaces dinámicos
- Acceder a las funciones de los dll cargados
- Funciones de llamada
- Tipos de datos fundamentales
- Funciones de llamada, continuación
- Funciones de llamada con sus propios tipos de datos personalizados
- Especificar los tipos de argumentos requeridos (prototipos de funciones)
- Tipos de retorno
- Pasar los punteros (o: pasar los parámetros por referencia)
- Estructuras y uniones
- Alineación de estructura/unión y orden de bytes
- Campos de bits en estructuras y uniones
- Arreglos
- Punteros
- Conversiones de tipos
- Tipos incompletos
- Funciones de retrollamadas (callback)
- Acceder a los valores exportados de los dlls
- Sorpresas
- Tipos de datos de tamaño variable
- referencia ctypes
- tutorial de ctypes
- Ejecución concurrente
threading— Paralelismo basado en hilosmultiprocessing— Paralelismo basado en procesos- Introducción
- Referencia
Processy excepciones- Tuberías (Pipes) y Colas (Queues)
- Miscelánea
- Objetos de conexión Connection Objects
- Primitivas de sincronización (Synchronization primitives)
- Objetos compartidos
ctypes - Administradores (Managers)
- Objetos Proxy (Proxy Objects)
- Piscinas de procesos (Process Pools)
- Oyentes y Clientes (Listeners and Clients)
- Llaves de autentificación
- Logging
- El módulo
multiprocessing.dummy
- Pautas de programación
- Ejemplos
multiprocessing.shared_memory— Proporciona memoria compartida para acceso directo a través de procesos- El paquete
concurrent concurrent.futures— Lanzamiento de tareas paralelassubprocess— Gestión de subprocesossched— Eventos del planificadorqueue— clase de cola sincronizadacontextvars— Variables de Contexto_thread— API de bajo nivel para manejo de hilos
- Comunicación en redes y entre procesos
asyncio— E/S Asíncrona- Corrutinas y Tareas
- Streams
- Primitivas de sincronización
- Sub-procesos
- Colas
- Excepciones
- Bucle de eventos
- Métodos del bucle de eventos
- Iniciar y para el bucle
- Programación de llamadas de retorno
- Planificando llamadas retardadas
- Creando Futuros y Tareas
- Abriendo conexiones de red
- Creando servidores de red
- Transfiriendo archivos
- Actualización de TLS
- Viendo descriptores de archivos
- Trabajar con objetos sockets directamente
- DNS
- Trabajando con tuberías
- Señales Unix
- Ejecutando código en un hilos o grupos de procesos
- API para manejo de errores
- Habilitando el modo depuración
- Ejecutando Subprocesos
- Gestores de llamadas
- Objetos Servidor
- Implementaciones del bucle de eventos
- Examples
- Métodos del bucle de eventos
- Futures
- Transportes y protocolos
- Políticas
- Soporte de plataforma
- Índice de API de alto nivel
- Índice de API de bajo nivel
- Desarrollando con asyncio
socket— interfaz de red de bajo nivelssl—Empaquetador o wrapper TLS/SSL para objetos de tipo socketselect— Esperando la finalización de E/Sselectors— Multiplexación de E/S de alto nivelsignal— Establece gestores para eventos asíncronosmmap— Soporte de archivos mapeados en memoria
- Manejo de Datos de Internet
email— Un paquete de manejo de correo electrónico y MIMEemail.message: Representando un mensaje de correo electrónicoemail.parser: Analizar mensajes de correo electrónicoemail.generator: Generando documentos MIMEemail.policy: Objetos Policyemail.errors: Clases de excepción y defectoemail.headerregistry: Objetos de encabezado personalizadosemail.contentmanager: Gestión de contenido MIMEemail: Ejemplosemail.message.Message: Representar un mensaje de correo electrónico usando la APIcompat32email.mime: Creación de correo electrónico y objetos MIME desde ceroemail.header: Cabeceras internacionalizadasemail.charset: Representa conjunto de caracteresemail.encoders: Codificadoresemail.utils: Utilidades misceláneasemail.iterators: Iteradores
json— Codificador y decodificador JSONmailbox— Manipular buzones de correo en varios formatosmimetypes— Mapea nombres de archivo a tipos MIMEbase64— Codificaciones de datos Base16, Base32, Base64, y Base85binhex— Codificar y decodificar archivos binhex4binascii— Convertir entre binario y ASCIIquopri— Codificar y decodificar datos MIME imprimibles entre comillas
- Herramientas Para Procesar Formatos de Marcado Estructurado
html— Compatibilidad con el Lenguaje de marcado de hipertextohtml.parser— Analizador simple de HTML y XHTMLhtml.entities— Definiciones de entidades generales HTML- Módulos de procesamiento XML
xml.etree.ElementTree— La API XML de ElementTreexml.dom— El API del Modelo de Objetos del Documentoxml.dom.minidom— Implementación mínima del DOMxml.dom.pulldom— Soporte para la construcción parcial de árboles DOMXML.sax— Soporte para analizadores SAX2xml.sax.handler— Clases base para los handlers SAXxml.sax.saxutils— Utilidades SAXxml.sax.xmlreader— Interfaz para analizadores XMLxml.parsers.expat— Análisis rápido XML usando Expat
- Protocolos y soporte de Internet
webbrowser— Cómodo controlador de navegador webwsgiref— Utilidades WSGI e implementación de referenciaurllib— URL módulos de manipulaciónurllib.request— Biblioteca extensible para abrir URLs- Objetos Request
- Objetos OpenerDirector
- Objetos BaseHandler
- Objetos HTTPRedirectHandler
- Objetos HTTPCookieProcessor
- Objetos ProxyHandler
- Objetos HTTPPasswordMgr
- Objetos HTTPPasswordMgrWithPriorAuth
- Objetos AbstractBasicAuthHandler
- Objetos HTTPBasicAuthHandler
- Objetos ProxyBasicAuthHandler
- Objetos AbstractDigestAuthHandler
- Objetos HTTPDigestAuthHandler
- Objetos ProxyDigestAuthHandler
- Objetos HTTPHandler
- Objetos HTTPSHandler
- Objetos FileHandler
- Objetos DataHandler
- Objetos FTPHandler
- Objetos CacheFTPHandler
- Objetos UnknownHandler
- Objetos HTTPErrorProcessor
- Ejemplos
- Interfaz heredada
- Restricciones
urllib.request
urllib.response— Clases de respuesta usadas por urlliburllib.parse— Analiza URL en componentesurllib.error— Clases de excepción lanzadas por urllib.requesturllib.robotparser— Analizador para robots.txthttp— Módulos HTTPhttp.client— Cliente de protocolo HTTPftplib— cliente de protocolo FTPpoplib— Cliente de protocolo POP3imaplib— Protocolo del cliente IMAP4smtplib— Cliente de protocolo SMTPuuid— objetos UUID según RFC 4122socketserver— Un framework para servidores de redhttp.server— Servidores HTTPhttp.cookies— Gestión del estado HTTPhttp.cookiejar— Manejo de cookies para clientes HTTPxmlrpc— Módulos XMLRPC para cliente y servidorxmlrpc.client— acceso cliente XML-RPCxmlrpc.server— Servidores básicos XML-RPCipaddress— Biblioteca de manipulación IPv4/IPv6
- Servicios Multimedia
- Internacionalización
- Frameworks de programa
turtle— Gráficos con Turtle- Introducción
- Reseña de los métodos disponibles para Turtle y Screen
- Métodos de RawTurtle/Turtle Y sus correspondientes funciones
- Métodos de TurtleScreen/Screen y sus correspondientes funciones
- Clases públicas
- Ayuda y configuración
turtledemo— Scripts de demostración- Cambios desde Python 2.6
- Cambios desde Python 3.0
cmd— Soporte para intérpretes orientados a línea de comandosshlex— Análisis léxico simple
- Interfaces gráficas de usuario con Tk
tkinter— Interface de Python para Tcl/Tktkinter.colorchooser— Diálogo de elección de colortkinter.font— Envoltorio de fuente Tkinter- Diálogos Tkinter
tkinter.messagebox— Indicadores de mensajes de Tkintertkinter.scrolledtext— Widget de texto desplazadotkinter.dnd— Soporte de arrastrar y soltartkinter.ttk— Tk widgets temáticostkinter.tix— Ampliación de widgets para Tk- IDLE
- Menús
- Menú de archivo (Shell y Editor)
- Menú editar (Shell y Editor)
- Menú de formato (solo ventana del Editor)
- Menú ejecutar (solo ventana Editor)
- Menú de shell (solo ventana de shell)
- Menú de depuración (solo ventana de shell)
- Menú de opciones (Shell y editor)
- Menú de ventana (shell y editor)
- Menú de ayuda (shell y editor)
- Menús contextuales
- Edición y navegación
- Inicio y ejecución de código
- Ayuda y preferencias
- Menús
- Herramientas de desarrollo
typing— Soporte para type hints- Relevant PEPs
- Alias de tipo
- NewType
- Callable
- Genéricos
- Tipos genéricos definidos por el usuario
- El tipo
Any - Subtipado nominal vs estructural
- Contenido del módulo
pydoc— Generador de documentación y Sistema de ayuda en línea- Modo de desarrollo de Python
- Efectos del modo de desarrollo de Python
- Ejemplo de ResourceWarning
- Ejemplo de error de descriptor de archivo incorrecto
doctest– Prueba ejemplos interactivos de Pythonunittest— Infraestructura de tests unitarios- Ejemplo sencillo
- Interfaz de línea de comandos
- Descubrimiento de pruebas
- Organización del código de pruebas
- Reutilización de código de prueba anterior
- Omitir tests y fallos esperados
- Distinguiendo iteraciones de tests empleando subtests
- Clases y funciones
- Instalaciones para clases y módulos
- Manejo de señales
unittest.mock— Biblioteca de objetos simuladosunittest.mock— primeros pasos- Usando Mock
- Métodos de parcheo Mock
- Mock de llamadas a métodos sobre un objeto
- Clases Mocking
- Nombrando tus mocks
- Siguiendo todas las llamadas
- Establecer valores de retorno y atributos
- Generar excepciones con mocks
- Funciones de efectos secundarios e iterables
- Iteradores asincrónicos de Mocking
- El gestor de contexto asincrónico de Mocking
- Creando un mock desde un objeto existente
- Decoradores de Parches
- Otros Ejemplos
- Mocking de llamadas encadenadas
- Mocking parcial
- Mocking de un Método Generador
- Aplicar el mismo parche a cada método de prueba
- Mocking de métodos sin enlazar
- Comprobación de varias llamadas con mock
- Copiando con argumentos mutables
- Anidando Parches
- Mocking a un diccionario usando MagickMock
- Mock de subclases y sus atributos
- Importaciones de Mocking con patch.dict
- Seguimiento del orden de las llamadas y de las aserciones de llamadas menos detalladas
- Coincidencia de argumentos más compleja
- Usando Mock
- 2to3 - Traducción de código Python 2 a 3
test— Paquete de pruebas de regresión para Pythontest.support— Utilidades para el conjunto de pruebas de Pythontest.support.socket_helper— Utilidades para pruebas de sockettest.support.script_helper—Utilidades para las pruebas de ejecución de Pythontest.support.bytecode_helper— Herramientas de apoyo para comprobar la correcta generación de bytecode
- Depuración y perfilado
- Tabla de auditoría de eventos
bdb— Framework de depuraciónfaulthandler— Volcar el rastreo de Pythonpdb— El Depurador de Python- Los perfiladores de Python
timeit— Mide el tiempo de ejecución de pequeños fragmentos de códigotrace— Rastrear la ejecución de la declaración de Pythontracemalloc— Rastrea la asignación de memoria
- Empaquetado y distribución de software
- Servicios en tiempo de ejecución de Python
sys— Parámetros y funciones específicos del sistemasysconfig— Proporciona acceso a la información de configuración de Pythonbuiltins— Objetos incorporados__main__— Entorno de script del nivel superiorwarnings— Control de advertenciasdataclasses— Clases de datoscontextlib— Utilidades para declaraciones de contextowithabc— Clases de Base Abstractaatexit— Gestores de Salidatraceback— Imprimir o recuperar un seguimiento de pila__future__— Definiciones de declaraciones futurasgc— Interfaz del recolector de basurainspect— Inspeccionar objetos vivossite— Enlace (hook) de configuración específico del sitio
- Intérpretes de Python personalizados
- Importando módulos
zipimport— Importar módulos desde archivos zippkgutil— Utilidad de extensión de paquetemodulefinder— Buscar módulos usados por un scriptrunpy— Localización y ejecución de módulos Pythonimportlib— La implementación deimport- Usando importlib.metadata
- Servicios del lenguaje Python
parser— Acceder a árboles de análisis sintáctico de Pythonast— Árboles de sintaxis abstractasymtable— Acceso a la tabla de símbolos del compiladorsymbol— Constantes utilizadas con árboles de análisis de Pythontoken— Constantes usadas con árboles de sintaxis de Pythonkeyword— Pruebas para palabras clave en Pythontokenize— Conversor a tokens para código Pythontabnanny— Detección de indentación ambiguapyclbr— Soporte para navegador de módulos Pythonpy_compile`— Compila archivos fuente Pythoncompileall— Bibliotecas de Python de compilación de bytesdis— Desensamblador para bytecode de Pythonpickletools— Herramientas para desarrolladores pickle
- Servicios varios
- Servicios Específicos para MS Windows
- Servicios específicos de Unix
posix— Las llamadas más comunes al sistema POSIXpwd— La base de datos de contraseñasgrp— La base de datos de grupotermios—Control tty estilo POSIXtty— Funciones de control de terminalpty— Utilidades para Pseudo-terminalfcntl— Las llamadas a sistemafcntlyioctlresource— Información sobre el uso de recursossyslog— Rutinas de la biblioteca syslog de Unix
- Módulos Reemplazados
aifc— Lee y escribe archivos AIFF y AIFCasynchat— Gestor de comandos/respuestas en sockets asíncronosasyncore— controlador de socket asincrónicoaudioop— Manipula datos de audio sin procesarcgi— Soporte de Interfaz de Entrada Común (CGI)cgitb— Administrador traceback para scripts CGI.chunk— Lee los datos de los trozos de IFFcrypt— Función para verificar contraseñas Unix- :mod:”imghdr” — Determinar el tipo de imagen
imp— Acceda a import internamentemailcap— Manejo de archivos Mailcapmsilib— Leer y escribir archivos Microsoft Installernis— Interfaz a Sun’s NIS (Páginas amarillas)nntplib— Protocolo de cliente NNTPoptparse— Analizador sintáctico (parser) para opciones de línea de comandos- Contexto
- Tutorial
- Guía de referencia
- Creando el analizador sintáctico (parser)
- Completando el analizador con opciones
- Definiendo las opciones
- Atributos de opción
- Acciones de opción estándares
- Tipos de opción estándares
- Analizando los argumentos
- Consultar y manipular el analizador de opciones
- Conflictos entre opciones
- Limpieza
- Otros métodos
- Retrollamadas de opción
- Definición de una opción con retrollamada
- Cómo son invocadas las retrollamadas
- Lanzando errores en una retrollamada
- Ejemplo de retrollamada 1: una retrollamada trivial
- Ejemplo de retrollamada 2: comprobar el orden de las opciones
- Ejemplo de retrollamada 3: comprobar el orden de las opciones (generalizado)
- Ejemplo de retrollamada 4: comprobar una condición arbitraria
- Ejemplo de retrollamada 5: argumentos fijos
- Ejemplo de retrollamada 6: argumentos variables
- Extendiendo el módulo
optparse
ossaudiodev— Acceso a dispositivos de audio compatibles con OSSpipes— Interfaz para tuberías de shellsmtpd— Servidor SMTPsndhdr— Determinar el tipo de archivo de sonidospwd— La base de datos de contraseñas ocultassunau— Lectura y escritura de ficheros Sun AUtelnetlib— cliente Telnetuu— Codifica y decodifica archivos UUEncodexdrlib— Codificar y decodificar datos XDR
- Security Considerations
- Ampliación e incrustación del intérprete de Python
- Herramientas de terceros recomendadas
- Crear extensiones sin herramientas de terceros
- 1. Extendiendo Python con C o C++
- 1.1. Un ejemplo simple
- 1.2. Intermezzo: errores y excepciones
- 1.3. De vuelta al ejemplo
- 1.4. La tabla de métodos del módulo y la función de inicialización
- 1.5. Compilación y Enlazamiento
- 1.6. Llamando funciones Python desde C
- 1.7. Extracción de parámetros en funciones de extensión
- 1.8. Parámetros de palabras clave para funciones de extensión
- 1.9. Construyendo Valores Arbitrarios
- 1.10. Conteo de Referencias
- 1.11. Escribiendo Extensiones en C++
- 1.12. Proporcionar una API C para un módulo de extensión
- 2. Definición de tipos de extensión: Tutorial
- 3. Definición de tipos de extensión: temas variados
- 4. Construyendo Extensiones C y C++
- 5. Creación de extensiones C y C++ en Windows
- 1. Extendiendo Python con C o C++
- Incrustar el tiempo de ejecución de CPython en una aplicación más grande
- Manual de referencia de la API en C de Python
- Introducción
- Interfaz binaria de aplicación estable
- La capa de muy alto nivel
- Conteo de referencias
- Manejo de excepciones
- Utilidades
- Capa de objetos abstractos
- Capa de objetos concretos
- Objetos fundamentales
- Objetos numéricos
- Objetos de secuencia
- Objetos contenedor
- Objetos de función
- Otros objetos
- Objetos archivo
- Objectos Modulo
- Objetos iteradores
- Objetos descriptores
- Objeto rebanada (slice)
- Objeto Elipsis
- Objetos de vista de memoria (MemoryView)
- Objetos de referencia débil
- Cápsulas
- Objetos Generadores
- Objetos corrutina
- Objetos de variables de contexto
- Objetos DateTime
- Objects for Type Hinting
- Inicialización, Finalización e Hilos
- Antes de la inicialización de Python
- Variables de configuración global
- Inicializando y finalizando el intérprete
- Parámetros de todo el proceso
- Estado del hilo y el bloqueo global del intérprete
- Soporte de subinterprete
- Notificaciones asincrónicas
- Perfilado y Rastreo
- Soporte avanzado del depurador
- Soporte de almacenamiento local de hilo
- Configuración de inicialización de Python
- Gestión de la memoria
- Soporte de implementación de objetos
- Asignación de objetos en el montículo
- Estructuras de objetos comunes
- Objetos Tipo
- Estructuras de Objetos de Números
- Estructuras de Objetos Mapeo
- Estructuras de objetos secuencia
- Estructuras de Objetos Búfer
- Estructuras de objetos asíncronos
- Tipo Ranura typedefs
- Ejemplos
- Apoyo a la recolección de basura cíclica
- Versiones de API y ABI
- Distribuir módulos de Python
- Instalando módulos de Python
- Comos (HOWTOs) de Python
- Portando código de Python 2 a Python 3
- La breve explicación
- Detalles
- Compatibilidad con Python 2.6 y versiones anteriores
- Asegúrese de especificar el soporte de versión adecuado en su archivo
setup.py - Tener una buena cobertura de prueba
- Aprende las diferencias entre Python 2 & 3
- Actualiza tu código
- Evitar regresiones de compatibilidad
- Compruebe qué dependencias bloquean la transición
- Actualice su archivo
setup.pypara denotar compatibilidad con Python 3 - Utilice la integración continua para seguir siendo compatible
- Considere la posibilidad de usar la comprobación de tipos estáticos opcionales
- Portar módulos de extensión a Python 3
- Programación de Curses con Python
- Guía práctica de uso de los descriptores
- HOWTO - Programación funcional
- HOWTO Hacer Registros (Logging)
- Libro de recetas de Logging
- Usar logging en múltiples módulos
- Logging desde múltiples hilos
- Múltiples gestores y formateadores
- Logging en múltiples destinos
- Ejemplo de servidor de configuración
- Tratar con gestores que bloquean
- Enviar y recibir eventos logging a través de una red
- Agregar información contextual a su salida de logging
- Logging a un sólo archivo desde múltiples procesos
- Usando rotación de archivos
- Uso de estilos de formato alternativos
- Personalización de
LogRecord - Subclasificación QueueHandler - un ejemplo de ZeroMQ
- Subclasificación QueueListener - un ejemplo de ZeroMQ
- Una configuración de ejemplo basada en diccionario
- Usar un rotador y un nombre para personalizar el procesamiento de rotación de log
- Un ejemplo de multiprocesamiento más elaborado
- Insertar BOM en mensajes enviados a SysLogHandler
- Implementar logging estructurado
- Personalización de gestores con
dictConfig() - Usar estilos de formato particulares en toda su aplicación
- Configurar filtros con
dictConfig() - Formato de excepción personalizado
- Mensajes de logging hablantes
- Almacenamiento en búfer de mensajes de logging y su salida condicional
- Formateo de horas usando UTC (GMT) a través de la configuración
- Usar un administrador de contexto para logging selectivo
- Una plantilla de inicio de aplicación CLI
- Una GUI de Qt para logging
- Patterns to avoid
- Expresiones regulares COMOS (HOWTO)
- HOW TO - Programación con sockets
- HOW TO - Ordenar
- CÓMO (HOWTO) Unicode
- HOWTO - Cómo obtener recursos de Internet con el paquete urllib
- Tutorial de Argparse
- Introducción al modulo ipaddress
- Creando objetos Dirección/Red/Interfaz (Address/Network/Interface)
- Inspeccionando objetos Dirección/Red/Interfaz (Address/Network/Interface)
- Redes como listas de direcciones
- Comparaciones
- Uso de direcciones IP con otros módulos
- Obtener más detalles cuando se produce un error en la creación de instancias
- How-To Argument Clinic
- Los objetivos del Argument Clinic
- Conceptos básicos y uso
- Convirtiendo su primera función
- Temas avanzados
- Valores predeterminados simbólicos
- Cambiar el nombre de las funciones y variables C generadas por Argument Clinic
- Convirtiendo funciones usando PyArg_UnpackTuple
- Grupos opcionales
- Usar convertidores de Argument Clinic reales, en lugar de «convertidores heredados»
- Py_buffer
- Convertidores avanzados
- Valores predeterminados de los parámetros
- El valor predeterminado
NULL - Expresiones especificadas como valores por defecto
- Usando un convertidor de retorno
- Clonando funciones existentes
- Llamando código Python
- Usando un «auto convertidor»
- Escribiendo un convertidor personalizado
- Escribiendo un convertidor de retorno personalizado
- METH_O y METH_NOARGS
- funciones tp_new y tp_init
- Cambiar y redirigir la salida de Clinic
- El truco #ifdef
- Usando Argument Clinic en archivos Python
- Instrumentación de CPython con DTrace y SystemTap
- Portando código de Python 2 a Python 3
- Preguntas más frecuentes de Python
- Preguntas frecuentes generales sobre Python
- Preguntas frecuentes de programación
- Preguntas frecuentes sobre diseño e historia
- ¿Por qué Python usa indentación para agrupar declaraciones?
- ¿Por qué obtengo resultados extraños con operaciones aritméticas simples?
- ¿Por qué los cálculos de punto flotante son tan inexactos?
- ¿Por qué las cadenas de caracteres de Python son inmutables?
- ¿Por qué debe usarse “self” explícitamente en las definiciones y llamadas de métodos?
- ¿Por qué no puedo usar una tarea en una expresión?
- ¿Por qué Python usa métodos para alguna funcionalidad (por ejemplo, list.index()) pero funciones para otra (por ejemplo, len(list))?
- ¿Por qué join() es un método de cadena de caracteres en lugar de un método de lista o tupla?
- ¿Qué tan rápido van las excepciones?
- ¿Por qué no hay un switch o una declaración case en Python?
- ¿No puede emular hilos en el intérprete en lugar de confiar en una implementación de hilos específica del sistema operativo?
- ¿Por qué las expresiones lambda no pueden contener sentencias?
- ¿Se puede compilar Python en código máquina, C o algún otro lenguaje?
- ¿Cómo gestiona Python la memoria?
- ¿Por qué CPython no utiliza un esquema de recolección de basura más tradicional?
- ¿Por qué no se libera toda la memoria cuando sale CPython?
- ¿Por qué hay tipos de datos separados de tuplas y listas?
- ¿Cómo se implementan las listas en Python?
- ¿Cómo se implementan los diccionarios en CPython?
- ¿Por qué las claves del diccionario deben ser inmutables?
- ¿Por qué list.sort() no retorna la lista ordenada?
- ¿Cómo se especifica y aplica una especificación de interfaz en Python?
- ¿Por qué no hay goto?
- ¿Por qué las cadenas de caracteres sin formato (r-strings) no pueden terminar con una barra diagonal inversa?
- ¿Por qué Python no tiene una declaración «with» para las asignaciones de atributos?
- Why don’t generators support the with statement?
- ¿Por qué se requieren dos puntos para las declaraciones if/while/def/class?
- ¿Por qué Python permite comas al final de las listas y tuplas?
- Preguntas frecuentes sobre bibliotecas y extensiones
- Extendiendo/Embebiendo FAQ
- ¿Puedo crear mis propias funciones en C?
- ¿Puedo crear mis propias funciones en C++?
- Escribir en C es difícil; ¿no hay otra alternativa?
- ¿Cómo puedo ejecutar declaraciones arbitrarias de Python desde C?
- ¿Cómo puedo evaluar una expresión arbitraria de Python desde C?
- ¿Cómo extraigo valores C de un objeto Python?
- ¿Cómo utilizo Py_BuildValue() para crear una tupla de un tamaño arbitrario?
- ¿Cómo puedo llamar un método de un objeto desde C?
- ¿Cómo obtengo la salida de PyErr_Print() (o cualquier cosa que se imprime a stdout/stderr)?
- ¿Cómo accedo al módulo escrito en Python desde C?
- ¿Cómo hago una interface a objetos C++ desde Python?
- He agregado un módulo usando el archivo de configuración y el make falla. ¿Porque?
- ¿Cómo puedo depurar una extensión?
- Quiero compilar un módulo Python en mi sistema Linux, pero me faltan algunos archivos . ¿Por qué?
- ¿Cómo digo «entrada incompleta» desde «entrada inválida»?
- ¿Cómo encuentro símbolos g++ __builtin_new o __pure_virtual?
- ¿Puedo crear una clase objeto con algunos métodos implementado en C y otros en Python (por ejemplo a través de la herencia)?
- Preguntas frecuentes sobre Python en Windows
- ¿Cómo ejecutar un programa Python en Windows?
- ¿Cómo hacer que los scripts de Python sean ejecutables?
- ¿Por qué Python tarda en comenzar?
- ¿Cómo hacer un ejecutable a partir de un script de Python?
- ¿Es un archivo
*.pydlo mismo que una DLL? - ¿Cómo puedo integrar Python en una aplicación de Windows?
- ¿Cómo puedo evitar que mi editor inserte pestañas en mi archivo fuente de Python?
- ¿Cómo verifico una pulsación de tecla sin bloquearla?
- Preguntas frecuentes sobre la Interfaz Gráfica de Usuario (GUI)
- «¿Por qué está Python instalado en mi ordenador?» FAQ
- Glosario
- Acerca de estos documentos
- Lidiar con errores
- Derechos de autor
- Historia y Licencia