Glosario¶
>>>
¶El prompt en el shell interactivo de Python por omisión. Frecuentemente vistos en ejemplos de código que pueden ser ejecutados interactivamente en el intérprete.
...
¶Puede referirse a:
El prompt en el shell interactivo de Python por omisión cuando se ingresa código para un bloque indentado de código, y cuando se encuentra entre dos delimitadores que emparejan (paréntesis, corchetes, llaves o comillas triples), o después de especificar un decorador.
La constante incorporada
Ellipsis
.
- 2to3¶
Una herramienta que intenta convertir código de Python 2.x a Python 3.x arreglando la mayoría de las incompatibilidades que pueden ser detectadas analizando el código y recorriendo el árbol de análisis sintáctico.
2to3 está disponible en la biblioteca estándar como
lib2to3
; un punto de entrada independiente es provisto comoTools/scripts/2to3
. Vea 2to3 — Traducción automática de código de Python 2 a 3.- clase base abstracta¶
Las clases base abstractas (ABC, por sus siglas en inglés Abstract Base Class) complementan al duck-typing brindando un forma de definir interfaces con técnicas como
hasattr()
que serían confusas o sutilmente erróneas (por ejemplo con magic methods). Las ABC introduce subclases virtuales, las cuales son clases que no heredan desde una clase pero aún así son reconocidas porisinstance()
yissubclass()
; vea la documentación del móduloabc
. Python viene con muchas ABC incorporadas para las estructuras de datos( en el módulocollections.abc
), números (en el módulonumbers
) , flujos de datos (en el móduloio
) , buscadores y cargadores de importaciones (en el móduloimportlib.abc
) . Puede crear sus propios ABCs con el móduloabc
.- anotación¶
Una etiqueta asociada a una variable, atributo de clase, parámetro de función o valor de retorno, usado por convención como un type hint.
Las anotaciones de variables no pueden ser accedidas en tiempo de ejecución, pero las anotaciones de variables globales, atributos de clase, y funciones son almacenadas en el atributo especial
__annotations__
de módulos, clases y funciones, respectivamente.Consulte variable annotation, function annotation, PEP 484 y PEP 526, que describen esta funcionalidad. Consulte también Prácticas recomendadas para las anotaciones para conocer las mejores prácticas sobre cómo trabajar con anotaciones.
- argumento¶
Un valor pasado a una function (o method) cuando se llama a la función. Hay dos clases de argumentos:
argumento nombrado: es un argumento precedido por un identificador (por ejemplo,
nombre=
) en una llamada a una función o pasado como valor en un diccionario precedido por**
. Por ejemplo3
y5
son argumentos nombrados en las llamadas acomplex()
:complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
argumento posicional son aquellos que no son nombrados. Los argumentos posicionales deben aparecer al principio de una lista de argumentos o ser pasados como elementos de un iterable precedido por
*
. Por ejemplo,3
y5
son argumentos posicionales en las siguientes llamadas:complex(3, 5) complex(*(3, 5))
Los argumentos son asignados a las variables locales en el cuerpo de la función. Vea en la sección Invocaciones las reglas que rigen estas asignaciones. Sintácticamente, cualquier expresión puede ser usada para representar un argumento; el valor evaluado es asignado a la variable local.
Vea también el parameter en el glosario, la pregunta frecuente la diferencia entre argumentos y parámetros, y PEP 362.
- administrador asincrónico de contexto¶
An object which controls the environment seen in an
async with
statement by defining__aenter__()
and__aexit__()
methods. Introduced by PEP 492.- generador asincrónico¶
Una función que retorna un asynchronous generator iterator. Es similar a una función corrutina definida con
async def
excepto que contiene expresionesyield
para producir series de variables usadas en un cicloasync for
.Usualmente se refiere a una función generadora asincrónica, pero puede referirse a un iterador generador asincrónico en ciertos contextos. En aquellos casos en los que el significado no está claro, usar los términos completos evita la ambigüedad.
Una función generadora asincrónica puede contener expresiones
await
así como sentenciasasync for
, yasync with
.- iterador generador asincrónico¶
Un objeto creado por una función asynchronous generator.
This is an asynchronous iterator which when called using the
__anext__()
method returns an awaitable object which will execute the body of the asynchronous generator function until the nextyield
expression.Each
yield
temporarily suspends processing, remembering the location execution state (including local variables and pending try-statements). When the asynchronous generator iterator effectively resumes with another awaitable returned by__anext__()
, it picks up where it left off. See PEP 492 and PEP 525.- iterable asincrónico¶
An object, that can be used in an
async for
statement. Must return an asynchronous iterator from its__aiter__()
method. Introduced by PEP 492.- iterador asincrónico¶
An object that implements the
__aiter__()
and__anext__()
methods.__anext__()
must return an awaitable object.async for
resolves the awaitables returned by an asynchronous iterator’s__anext__()
method until it raises aStopAsyncIteration
exception. Introduced by PEP 492.- atributo¶
A value associated with an object which is usually referenced by name using dotted expressions. For example, if an object o has an attribute a it would be referenced as o.a.
It is possible to give an object an attribute whose name is not an identifier as defined by Identificadores y palabras clave, for example using
setattr()
, if the object allows it. Such an attribute will not be accessible using a dotted expression, and would instead need to be retrieved withgetattr()
.- a la espera¶
An object that can be used in an
await
expression. Can be a coroutine or an object with an__await__()
method. See also PEP 492.- BDFL¶
Sigla de Benevolent Dictator For Life, benevolente dictador vitalicio, es decir Guido van Rossum, el creador de Python.
- archivo binario¶
A file object able to read and write bytes-like objects. Examples of binary files are files opened in binary mode (
'rb'
,'wb'
or'rb+'
),sys.stdin.buffer
,sys.stdout.buffer
, and instances ofio.BytesIO
andgzip.GzipFile
.Vea también text file para un objeto archivo capaz de leer y escribir objetos
str
.- referencia prestada¶
In Python’s C API, a borrowed reference is a reference to an object, where the code using the object does not own the reference. It becomes a dangling pointer if the object is destroyed. For example, a garbage collection can remove the last strong reference to the object and so destroy it.
Se recomienda llamar a
Py_INCREF()
en la referencia prestada para convertirla en una referencia fuerte in situ, excepto cuando el objeto no se puede destruir antes del último uso de la referencia prestada. La funciónPy_NewRef()
se puede utilizar para crear una nueva referencia fuerte.- objetos tipo binarios¶
Un objeto que soporta Protocolo búfer y puede exportar un búfer C-contiguous. Esto incluye todas los objetos
bytes
,bytearray
, yarray.array
, así como muchos objetos comunesmemoryview
. Los objetos tipo binarios pueden ser usados para varias operaciones que usan datos binarios; éstas incluyen compresión, salvar a archivos binarios, y enviarlos a través de un socket.Algunas operaciones necesitan que los datos binarios sean mutables. La documentación frecuentemente se refiere a éstos como «objetos tipo binario de lectura y escritura». Ejemplos de objetos de búfer mutables incluyen a
bytearray
ymemoryview
de labytearray
. Otras operaciones que requieren datos binarios almacenados en objetos inmutables («objetos tipo binario de sólo lectura»); ejemplos de éstos incluyenbytes
ymemoryview
del objetobytes
.- bytecode¶
El código fuente Python es compilado en bytecode, la representación interna de un programa python en el intérprete CPython. El bytecode también es guardado en caché en los archivos .pyc de tal forma que ejecutar el mismo archivo es más fácil la segunda vez (la recompilación desde el código fuente a bytecode puede ser evitada). Este «lenguaje intermedio» deberá corren en una virtual machine que ejecute el código de máquina correspondiente a cada bytecode. Note que los bytecodes no tienen como requisito trabajar en las diversas máquina virtuales de Python, ni de ser estable entre versiones Python.
Una lista de las instrucciones en bytecode está disponible en la documentación de el módulo dis.
- callable¶
A callable is an object that can be called, possibly with a set of arguments (see argument), with the following syntax:
callable(argument1, argument2, argumentN)
A function, and by extension a method, is a callable. An instance of a class that implements the
__call__()
method is also a callable.- retrollamada¶
Una función de subrutina que se pasa como un argumento para ejecutarse en algún momento en el futuro.
- clase¶
Una plantilla para crear objetos definidos por el usuario. Las definiciones de clase normalmente contienen definiciones de métodos que operan una instancia de la clase.
- variable de clase¶
Una variable definida en una clase y prevista para ser modificada sólo a nivel de clase (es decir, no en una instancia de la clase).
- número complejo¶
Una extensión del sistema familiar de número reales en el cual los números son expresados como la suma de una parte real y una parte imaginaria. Los números imaginarios son múltiplos de la unidad imaginaria (la raíz cuadrada de
-1
), usualmente escrita comoi
en matemáticas oj
en ingeniería. Python tiene soporte incorporado para números complejos, los cuales son escritos con la notación mencionada al final.; la parte imaginaria es escrita con un sufijoj
, por ejemplo,3+1j
. Para tener acceso a los equivalentes complejos del módulomath
module, usecmath
. El uso de números complejos es matemática bastante avanzada. Si no le parecen necesarios, puede ignorarlos sin inconvenientes.- administrador de contextos¶
An object which controls the environment seen in a
with
statement by defining__enter__()
and__exit__()
methods. See PEP 343.- variable de contexto¶
Una variable que puede tener diferentes valores dependiendo del contexto. Esto es similar a un almacenamiento de hilo local Thread-Local Storage en el cual cada hilo de ejecución puede tener valores diferentes para una variable. Sin embargo, con las variables de contexto, podría haber varios contextos en un hilo de ejecución y el uso principal de las variables de contexto es mantener registro de las variables en tareas concurrentes asíncronas. Vea
contextvars
.- contiguo¶
Un búfer es considerado contiguo con precisión si es C-contiguo o Fortran contiguo. Los búferes cero dimensionales con C y Fortran contiguos. En los arreglos unidimensionales, los ítems deben ser dispuestos en memoria uno siguiente al otro, ordenados por índices que comienzan en cero. En arreglos unidimensionales C-contiguos, el último índice varía más velozmente en el orden de las direcciones de memoria. Sin embargo, en arreglos Fortran contiguos, el primer índice vería más rápidamente.
- corrutina¶
Las corrutinas son una forma más generalizadas de las subrutinas. A las subrutinas se ingresa por un punto y se sale por otro punto. Las corrutinas pueden se iniciadas, finalizadas y reanudadas en muchos puntos diferentes. Pueden ser implementadas con la sentencia
async def
. Vea además PEP 492.- función corrutina¶
Un función que retorna un objeto coroutine . Una función corrutina puede ser definida con la sentencia
async def
, y puede contener las palabras clavesawait
,async for
, yasync with
. Las mismas son introducidas en PEP 492.- CPython¶
La implementación canónica del lenguaje de programación Python, como se distribuye en python.org. El término «CPython» es usado cuando es necesario distinguir esta implementación de otras como Jython o IronPython.
- decorador¶
Una función que retorna otra función, usualmente aplicada como una función de transformación empleando la sintaxis
@envoltorio
. Ejemplos comunes de decoradores sonclassmethod()
ystaticmethod()
.La sintaxis del decorador es meramente azúcar sintáctico, las definiciones de las siguientes dos funciones son semánticamente equivalentes:
def f(arg): ... f = staticmethod(f) @staticmethod def f(arg): ...
El mismo concepto existe para clases, pero son menos usadas. Vea la documentación de function definitions y class definitions para mayor detalle sobre decoradores.
- descriptor¶
Any object which defines the methods
__get__()
,__set__()
, or__delete__()
. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using a.b to get, set or delete an attribute looks up the object named b in the class dictionary for a, but if b is a descriptor, the respective descriptor method gets called. Understanding descriptors is a key to a deep understanding of Python because they are the basis for many features including functions, methods, properties, class methods, static methods, and reference to super classes.Para obtener más información sobre los métodos de los descriptores, consulte Implementando descriptores o Guía práctica de uso de los descriptores.
- diccionario¶
An associative array, where arbitrary keys are mapped to values. The keys can be any object with
__hash__()
and__eq__()
methods. Called a hash in Perl.- comprensión de diccionarios¶
Una forma compacta de procesar todos o parte de los elementos en un iterable y retornar un diccionario con los resultados.
results = {n: n ** 2 for n in range(10)}
genera un diccionario que contiene la claven
asignada al valorn ** 2
. Ver Despliegues para listas, conjuntos y diccionarios.- vista de diccionario¶
Los objetos retornados por los métodos
dict.keys()
,dict.values()
, ydict.items()
son llamados vistas de diccionarios. Proveen una vista dinámica de las entradas de un diccionario, lo que significa que cuando el diccionario cambia, la vista refleja éstos cambios. Para forzar a la vista de diccionario a convertirse en una lista completa, uselist(dictview)
. Vea Objetos tipos vista de diccionario.- docstring¶
A string literal which appears as the first expression in a class, function or module. While ignored when the suite is executed, it is recognized by the compiler and put into the
__doc__
attribute of the enclosing class, function or module. Since it is available via introspection, it is the canonical place for documentation of the object.- tipado de pato¶
Un estilo de programación que no revisa el tipo del objeto para determinar si tiene la interfaz correcta; en vez de ello, el método o atributo es simplemente llamado o usado («Si se ve como un pato y grazna como un pato, debe ser un pato»). Enfatizando las interfaces en vez de hacerlo con los tipos específicos, un código bien diseñado pues tener mayor flexibilidad permitiendo la sustitución polimórfica. El tipado de pato duck-typing evita usar pruebas llamando a
type()
oisinstance()
. (Nota: si embargo, el tipado de pato puede ser complementado con abstract base classes. En su lugar, generalmente pregunta conhasattr()
o EAFP.- EAFP¶
Del inglés Easier to ask for forgiveness than permission, es más fácil pedir perdón que pedir permiso. Este estilo de codificación común en Python asume la existencia de claves o atributos válidos y atrapa las excepciones si esta suposición resulta falsa. Este estilo rápido y limpio está caracterizado por muchas sentencias
try
yexcept
. Esta técnica contrasta con estilo LBYL usual en otros lenguajes como C.- expresión¶
Una construcción sintáctica que puede ser evaluada, hasta dar un valor. En otras palabras, una expresión es una acumulación de elementos de expresión tales como literales, nombres, accesos a atributos, operadores o llamadas a funciones, todos ellos retornando valor. A diferencia de otros lenguajes, no toda la sintaxis del lenguaje son expresiones. También hay statements que no pueden ser usadas como expresiones, como la
while
. Las asignaciones también son sentencias, no expresiones.- módulo de extensión¶
Un módulo escrito en C o C++, usando la API para C de Python para interactuar con el núcleo y el código del usuario.
- f-string¶
Son llamadas f-strings las cadenas literales que usan el prefijo
'f'
o'F'
, que es una abreviatura para formatted string literals. Vea también PEP 498.- objeto archivo¶
An object exposing a file-oriented API (with methods such as
read()
orwrite()
) to an underlying resource. Depending on the way it was created, a file object can mediate access to a real on-disk file or to another type of storage or communication device (for example standard input/output, in-memory buffers, sockets, pipes, etc.). File objects are also called file-like objects or streams.Existen tres categorías de objetos archivo: crudos raw archivos binarios, con búfer archivos binarios y archivos de texto. Sus interfaces son definidas en el módulo
io
. La forma canónica de crear objetos archivo es usando la funciónopen()
.- objetos tipo archivo¶
Un sinónimo de file object.
- codificación del sistema de archivos y manejador de errores¶
Controlador de errores y codificación utilizado por Python para decodificar bytes del sistema operativo y codificar Unicode en el sistema operativo.
La codificación del sistema de archivos debe garantizar la decodificación exitosa de todos los bytes por debajo de 128. Si la codificación del sistema de archivos no proporciona esta garantía, las funciones de API pueden lanzar
UnicodeError
.Las funciones
sys.getfilesystemencoding()
ysys.getfilesystemencodeerrors()
se pueden utilizar para obtener la codificación del sistema de archivos y el controlador de errores.La codificación del sistema de archivos y el manejador de errores se configuran al inicio de Python mediante la función
PyConfig_Read()
: consulte los miembrosfilesystem_encoding
yfilesystem_errors
dePyConfig
.See also the locale encoding.
- buscador¶
Un objeto que trata de encontrar el loader para el módulo que está siendo importado.
Desde la versión 3.3 de Python, existen dos tipos de buscadores: meta buscadores de ruta para usar con
sys.meta_path
, y buscadores de entradas de rutas para usar consys.path_hooks
.- división entera¶
Una división matemática que se redondea hacia el entero menor más cercano. El operador de la división entera es
//
. Por ejemplo, la expresión11 // 4
evalúa2
a diferencia del2.75
retornado por la verdadera división de números flotantes. Note que(-11) // 4
es-3
porque es-2.75
redondeado para abajo. Ver PEP 238.- función¶
Una serie de sentencias que retornan un valor al que las llama. También se le puede pasar cero o más argumentos los cuales pueden ser usados en la ejecución de la misma. Vea también parameter, method, y la sección Definiciones de funciones.
- anotación de función¶
Una annotation del parámetro de una función o un valor de retorno.
Las anotaciones de funciones son usadas frecuentemente para indicadores de tipo, por ejemplo, se espera que una función tome dos argumentos de clase
int
y también se espera que retorne dos valoresint
:def sum_two_numbers(a: int, b: int) -> int: return a + b
La sintaxis de las anotaciones de funciones son explicadas en la sección Definiciones de funciones.
Consulte variable annotation y PEP 484, que describen esta funcionalidad. Consulte también Prácticas recomendadas para las anotaciones para conocer las mejores prácticas sobre cómo trabajar con anotaciones.
- __future__¶
Un future statement,
from __future__ import <feature>
, indica al compilador que compile el módulo actual utilizando una sintaxis o semántica que se convertirá en estándar en una versión futura de Python. El módulo__future__
documenta los posibles valores de feature. Al importar este módulo y evaluar sus variables, puede ver cuándo se agregó por primera vez una nueva característica al lenguaje y cuándo se convertirá (o se convirtió) en la predeterminada:>>> import __future__ >>> __future__.division _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
- recolección de basura¶
El proceso de liberar la memoria de lo que ya no está en uso. Python realiza recolección de basura (garbage collection) llevando la cuenta de las referencias, y el recogedor de basura cíclico es capaz de detectar y romper las referencias cíclicas. El recogedor de basura puede ser controlado mediante el módulo
gc
.- generador¶
Una función que retorna un generator iterator. Luce como una función normal excepto que contiene la expresión
yield
para producir series de valores utilizables en un bucle for o que pueden ser obtenidas una por una con la funciónnext()
.Usualmente se refiere a una función generadora, pero puede referirse a un iterador generador en ciertos contextos. En aquellos casos en los que el significado no está claro, usar los términos completos evita la ambigüedad.
- iterador generador¶
Un objeto creado por una función generator.
Cada
yield
suspende temporalmente el procesamiento, recordando el estado de ejecución local (incluyendo las variables locales y las sentencias try pendientes). Cuando el «iterador generado» vuelve, retoma donde ha dejado, a diferencia de lo que ocurre con las funciones que comienzan nuevamente con cada invocación.- expresión generadora¶
Una expresión que retorna un iterador. Luce como una expresión normal seguida por la cláusula
for
definiendo así una variable de bucle, un rango y una cláusula opcionalif
. La expresión combinada genera valores para la función contenedora:>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
- función genérica¶
Una función compuesta de muchas funciones que implementan la misma operación para diferentes tipos. Qué implementación deberá ser usada durante la llamada a la misma es determinado por el algoritmo de despacho.
Vea también la entrada de glosario single dispatch, el decorador
functools.singledispatch()
, y PEP 443.- tipos genéricos¶
A type that can be parameterized; typically a container class such as
list
ordict
. Used for type hints and annotations.For more details, see generic alias types, PEP 483, PEP 484, PEP 585, and the
typing
module.- GIL¶
- bloqueo global del intérprete¶
Mecanismo empleado por el intérprete CPython para asegurar que sólo un hilo ejecute el bytecode Python por vez. Esto simplifica la implementación de CPython haciendo que el modelo de objetos (incluyendo algunos críticos como
dict
) están implícitamente a salvo de acceso concurrente. Bloqueando el intérprete completo se simplifica hacerlo multi-hilos, a costa de mucho del paralelismo ofrecido por las máquinas con múltiples procesadores.However, some extension modules, either standard or third-party, are designed so as to release the GIL when doing computationally intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O.
Esfuerzos previos hechos para crear un intérprete «sin hilos» (uno que bloquee los datos compartidos con una granularidad mucho más fina) no han sido exitosos debido a que el rendimiento sufrió para el caso más común de un solo procesador. Se cree que superar este problema de rendimiento haría la implementación mucho más compleja y por tanto, más costosa de mantener.
- hash-based pyc¶
Un archivo cache de bytecode que usa el hash en vez de usar el tiempo de la última modificación del archivo fuente correspondiente para determinar su validez. Vea Invalidación del código de bytes en caché.
- hashable¶
An object is hashable if it has a hash value which never changes during its lifetime (it needs a
__hash__()
method), and can be compared to other objects (it needs an__eq__()
method). Hashable objects which compare equal must have the same hash value.Ser hashable hace a un objeto utilizable como clave de un diccionario y miembro de un set, porque éstas estructuras de datos usan los valores de hash internamente.
La mayoría de los objetos inmutables incorporados en Python son hashables; los contenedores mutables (como las listas o los diccionarios) no lo son; los contenedores inmutables (como tuplas y conjuntos frozensets) son hashables si sus elementos son hashables . Los objetos que son instancias de clases definidas por el usuario son hashables por defecto. Todos se comparan como desiguales (excepto consigo mismos), y su valor de hash está derivado de su función
id()
.- IDLE¶
An Integrated Development and Learning Environment for Python. IDLE is a basic editor and interpreter environment which ships with the standard distribution of Python.
- inmutable¶
Un objeto con un valor fijo. Los objetos inmutables son números, cadenas y tuplas. Éstos objetos no pueden ser alterados. Un nuevo objeto debe ser creado si un valor diferente ha de ser guardado. Juegan un rol importante en lugares donde es necesario un valor de hash constante, por ejemplo como claves de un diccionario.
- ruta de importación¶
Una lista de las ubicaciones (o entradas de ruta) que son revisadas por path based finder al importar módulos. Durante la importación, ésta lista de localizaciones usualmente viene de
sys.path
, pero para los subpaquetes también puede incluir al atributo__path__
del paquete padre.- importar¶
El proceso mediante el cual el código Python dentro de un módulo se hace alcanzable desde otro código Python en otro módulo.
- importador¶
Un objeto que buscan y lee un módulo; un objeto que es tanto finder como loader.
- interactivo¶
Python tiene un intérprete interactivo, lo que significa que puede ingresar sentencias y expresiones en el prompt del intérprete, ejecutarlos de inmediato y ver sus resultados. Sólo ejecute
python
sin argumentos (podría seleccionarlo desde el menú principal de su computadora). Es una forma muy potente de probar nuevas ideas o inspeccionar módulos y paquetes (recuerdehelp(x)
).- interpretado¶
Python es un lenguaje interpretado, a diferencia de uno compilado, a pesar de que la distinción puede ser difusa debido al compilador a bytecode. Esto significa que los archivos fuente pueden ser corridos directamente, sin crear explícitamente un ejecutable que es corrido luego. Los lenguajes interpretados típicamente tienen ciclos de desarrollo y depuración más cortos que los compilados, sin embargo sus programas suelen correr más lentamente. Vea también interactive.
- apagado del intérprete¶
Cuando se le solicita apagarse, el intérprete Python ingresa a un fase especial en la cual gradualmente libera todos los recursos reservados, como módulos y varias estructuras internas críticas. También hace varias llamadas al recolector de basura. Esto puede disparar la ejecución de código de destructores definidos por el usuario o weakref callbacks. El código ejecutado durante la fase de apagado puede encontrar varias excepciones debido a que los recursos que necesita pueden no funcionar más (ejemplos comunes son los módulos de bibliotecas o los artefactos de advertencias warnings machinery)
La principal razón para el apagado del intérpreter es que el módulo
__main__
o el script que estaba corriendo termine su ejecución.- iterable¶
An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as
list
,str
, andtuple
) and some non-sequence types likedict
, file objects, and objects of any classes you define with an__iter__()
method or with a__getitem__()
method that implements sequence semantics.Iterables can be used in a
for
loop and in many other places where a sequence is needed (zip()
,map()
, …). When an iterable object is passed as an argument to the built-in functioniter()
, it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to calliter()
or deal with iterator objects yourself. Thefor
statement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator.- iterador¶
An object representing a stream of data. Repeated calls to the iterator’s
__next__()
method (or passing it to the built-in functionnext()
) return successive items in the stream. When no more data are available aStopIteration
exception is raised instead. At this point, the iterator object is exhausted and any further calls to its__next__()
method just raiseStopIteration
again. Iterators are required to have an__iter__()
method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted. One notable exception is code which attempts multiple iteration passes. A container object (such as alist
) produces a fresh new iterator each time you pass it to theiter()
function or use it in afor
loop. Attempting this with an iterator will just return the same exhausted iterator object used in the previous iteration pass, making it appear like an empty container.Puede encontrar más información en Tipos de iteradores.
Detalles de implementación de CPython: CPython does not consistently apply the requirement that an iterator define
__iter__()
.- función clave¶
Una función clave o una función de colación es un invocable que retorna un valor usado para el ordenamiento o clasificación. Por ejemplo,
locale.strxfrm()
es usada para producir claves de ordenamiento que se adaptan a las convenciones específicas de ordenamiento de un locale.Cierta cantidad de herramientas de Python aceptan funciones clave para controlar como los elementos son ordenados o agrupados. Incluyendo a
min()
,max()
,sorted()
,list.sort()
,heapq.merge()
,heapq.nsmallest()
,heapq.nlargest()
, yitertools.groupby()
.There are several ways to create a key function. For example. the
str.lower()
method can serve as a key function for case insensitive sorts. Alternatively, a key function can be built from alambda
expression such aslambda r: (r[0], r[2])
. Also,operator.attrgetter()
,operator.itemgetter()
, andoperator.methodcaller()
are three key function constructors. See the Sorting HOW TO for examples of how to create and use key functions.- argumento nombrado¶
Vea argument.
- lambda¶
Una función anónima de una línea consistente en un sola expression que es evaluada cuando la función es llamada. La sintaxis para crear una función lambda es
lambda [parameters]: expression
- LBYL¶
Del inglés Look before you leap, «mira antes de saltar». Es un estilo de codificación que prueba explícitamente las condiciones previas antes de hacer llamadas o búsquedas. Este estilo contrasta con la manera EAFP y está caracterizado por la presencia de muchas sentencias
if
.En entornos multi-hilos, el método LBYL tiene el riesgo de introducir condiciones de carrera entre los hilos que están «mirando» y los que están «saltando». Por ejemplo, el código,
if key in mapping: return mapping[key]
puede fallar si otro hilo remueve key de mapping después del test, pero antes de retornar el valor. Este problema puede ser resuelto usando bloqueos o empleando el método EAFP.- lista¶
A built-in Python sequence. Despite its name it is more akin to an array in other languages than to a linked list since access to elements is O(1).
- comprensión de listas¶
Una forma compacta de procesar todos o parte de los elementos en una secuencia y retornar una lista como resultado.
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]
genera una lista de cadenas conteniendo números hexadecimales (0x..) entre 0 y 255. La cláusulaif
es opcional. Si es omitida, todos los elementos enrange(256)
son procesados.- cargador¶
Un objeto que carga un módulo. Debe definir el método llamado
load_module()
. Un cargador es normalmente retornados por un finder. Vea PEP 302 para detalles yimportlib.abc.Loader
para una abstract base class.- codificación de la configuración regional¶
On Unix, it is the encoding of the LC_CTYPE locale. It can be set with
locale.setlocale(locale.LC_CTYPE, new_locale)
.On Windows, it is the ANSI code page (ex:
"cp1252"
).On Android and VxWorks, Python uses
"utf-8"
as the locale encoding.locale.getencoding()
can be used to get the locale encoding.See also the filesystem encoding and error handler.
- método mágico¶
Una manera informal de llamar a un special method.
- mapeado¶
A container object that supports arbitrary key lookups and implements the methods specified in the
collections.abc.Mapping
orcollections.abc.MutableMapping
abstract base classes. Examples includedict
,collections.defaultdict
,collections.OrderedDict
andcollections.Counter
.- meta buscadores de ruta¶
Un finder retornado por una búsqueda de
sys.meta_path
. Los meta buscadores de ruta están relacionados a buscadores de entradas de rutas, pero son algo diferente.Vea en
importlib.abc.MetaPathFinder
los métodos que los meta buscadores de ruta implementan.- metaclase¶
La clase de una clase. Las definiciones de clases crean nombres de clase, un diccionario de clase, y una lista de clases base. Las metaclases son responsables de tomar estos tres argumentos y crear la clase. La mayoría de los objetos de un lenguaje de programación orientado a objetos provienen de una implementación por defecto. Lo que hace a Python especial que es posible crear metaclases a medida. La mayoría de los usuario nunca necesitarán esta herramienta, pero cuando la necesidad surge, las metaclases pueden brindar soluciones poderosas y elegantes. Han sido usadas para loggear acceso de atributos, agregar seguridad a hilos, rastrear la creación de objetos, implementar singletons, y muchas otras tareas.
Más información hallará en Metaclases.
- método¶
Una función que es definida dentro del cuerpo de una clase. Si es llamada como un atributo de una instancia de otra clase, el método tomará el objeto instanciado como su primer argument (el cual es usualmente denominado self). Vea function y nested scope.
- orden de resolución de métodos¶
Orden de resolución de métodos es el orden en el cual una clase base es buscada por un miembro durante la búsqueda. Mire en The Python 2.3 Method Resolution Order los detalles del algoritmo usado por el intérprete Python desde la versión 2.3.
- módulo¶
Un objeto que sirve como unidad de organización del código Python. Los módulos tienen espacios de nombres conteniendo objetos Python arbitrarios. Los módulos son cargados en Python por el proceso de importing.
Vea también package.
- especificador de módulo¶
Un espacio de nombres que contiene la información relacionada a la importación usada al leer un módulo. Una instancia de
importlib.machinery.ModuleSpec
.- MRO¶
- mutable¶
Los objetos mutables pueden cambiar su valor pero mantener su
id()
. Vea también immutable.- tupla nombrada¶
La denominación «tupla nombrada» se aplica a cualquier tipo o clase que hereda de una tupla y cuyos elementos indexables son también accesibles usando atributos nombrados. Este tipo o clase puede tener además otras capacidades.
Varios tipos incorporados son tuplas nombradas, incluyendo los valores retornados por
time.localtime()
yos.stat()
. Otro ejemplo essys.float_info
:>>> sys.float_info[1] # indexed access 1024 >>> sys.float_info.max_exp # named field access 1024 >>> isinstance(sys.float_info, tuple) # kind of tuple True
Some named tuples are built-in types (such as the above examples). Alternatively, a named tuple can be created from a regular class definition that inherits from
tuple
and that defines named fields. Such a class can be written by hand, or it can be created by inheritingtyping.NamedTuple
, or with the factory functioncollections.namedtuple()
. The latter techniques also add some extra methods that may not be found in hand-written or built-in named tuples.- espacio de nombres¶
El lugar donde la variable es almacenada. Los espacios de nombres son implementados como diccionarios. Hay espacio de nombre local, global, e incorporado así como espacios de nombres anidados en objetos (en métodos). Los espacios de nombres soportan modularidad previniendo conflictos de nombramiento. Por ejemplo, las funciones
builtins.open
yos.open()
se distinguen por su espacio de nombres. Los espacios de nombres también ayuda a la legibilidad y mantenibilidad dejando claro qué módulo implementa una función. Por ejemplo, escribiendorandom.seed()
oitertools.islice()
queda claro que éstas funciones están implementadas en los módulosrandom
yitertools
, respectivamente.- paquete de espacios de nombres¶
Un PEP 420 package que sirve sólo para contener subpaquetes. Los paquetes de espacios de nombres pueden no tener representación física, y específicamente se diferencian de los regular package porque no tienen un archivo
__init__.py
.Vea también module.
- alcances anidados¶
La habilidad de referirse a una variable dentro de una definición encerrada. Por ejemplo, una función definida dentro de otra función puede referir a variables en la función externa. Note que los alcances anidados por defecto sólo funcionan para referencia y no para asignación. Las variables locales leen y escriben sólo en el alcance más interno. De manera semejante, las variables globales pueden leer y escribir en el espacio de nombres global. Con
nonlocal
se puede escribir en alcances exteriores.- clase de nuevo estilo¶
Old name for the flavor of classes now used for all class objects. In earlier Python versions, only new-style classes could use Python’s newer, versatile features like
__slots__
, descriptors, properties,__getattribute__()
, class methods, and static methods.- objeto¶
Cualquier dato con estado (atributo o valor) y comportamiento definido (métodos). También es la más básica clase base para cualquier new-style class.
- paquete¶
A Python module which can contain submodules or recursively, subpackages. Technically, a package is a Python module with a
__path__
attribute.Vea también regular package y namespace package.
- parámetro¶
Una entidad nombrada en una definición de una function (o método) que especifica un argument (o en algunos casos, varios argumentos) que la función puede aceptar. Existen cinco tipos de argumentos:
posicional o nombrado: especifica un argumento que puede ser pasado tanto como posicional o como nombrado. Este es el tipo por defecto de parámetro, como foo y bar en el siguiente ejemplo:
def func(foo, bar=None): ...
sólo posicional: especifica un argumento que puede ser pasado sólo por posición. Los parámetros sólo posicionales pueden ser definidos incluyendo un carácter
/
en la lista de parámetros de la función después de ellos, como posonly1 y posonly2 en el ejemplo que sigue:def func(posonly1, posonly2, /, positional_or_keyword): ...
sólo nombrado: especifica un argumento que sólo puede ser pasado por nombre. Los parámetros sólo por nombre pueden ser definidos incluyendo un parámetro posicional de una sola variable o un simple
*`
antes de ellos en la lista de parámetros en la definición de la función, como kw_only1 y kw_only2 en el ejemplo siguiente:def func(arg, *, kw_only1, kw_only2): ...
variable posicional: especifica una secuencia arbitraria de argumentos posicionales que pueden ser brindados (además de cualquier argumento posicional aceptado por otros parámetros). Este parámetro puede ser definido anteponiendo al nombre del parámetro
*
, como a args en el siguiente ejemplo:def func(*args, **kwargs): ...
variable nombrado: especifica que arbitrariamente muchos argumentos nombrados pueden ser brindados (además de cualquier argumento nombrado ya aceptado por cualquier otro parámetro). Este parámetro puede ser definido anteponiendo al nombre del parámetro con
**
, como kwargs en el ejemplo precedente.
Los parámetros puede especificar tanto argumentos opcionales como requeridos, así como valores por defecto para algunos argumentos opcionales.
Vea también el glosario de argument, la pregunta respondida en la diferencia entre argumentos y parámetros, la clase
inspect.Parameter
, la sección Definiciones de funciones , y PEP 362.- entrada de ruta¶
Una ubicación única en el import path que el path based finder consulta para encontrar los módulos a importar.
- buscador de entradas de ruta¶
Un finder retornado por un invocable en
sys.path_hooks
(esto es, un path entry hook) que sabe cómo localizar módulos dada una path entry.Vea en
importlib.abc.PathEntryFinder
los métodos que los buscadores de entradas de ruta implementan.- gancho a entrada de ruta¶
A callable on the
sys.path_hooks
list which returns a path entry finder if it knows how to find modules on a specific path entry.- buscador basado en ruta¶
Uno de los meta buscadores de ruta por defecto que busca un import path para los módulos.
- objeto tipo ruta¶
Un objeto que representa una ruta del sistema de archivos. Un objeto tipo ruta puede ser tanto una
str
como unbytes
representando una ruta, o un objeto que implementa el protocoloos.PathLike
. Un objeto que soporta el protocoloos.PathLike
puede ser convertido a ruta del sistema de archivo de clasestr
obytes
usando la funciónos.fspath()
;os.fsdecode()
os.fsencode()
pueden emplearse para garantizar que retorne respectivamentestr
obytes
. Introducido por PEP 519.- PEP¶
Propuesta de mejora de Python, del inglés Python Enhancement Proposal. Un PEP es un documento de diseño que brinda información a la comunidad Python, o describe una nueva capacidad para Python, sus procesos o entorno. Los PEPs deberían dar una especificación técnica concisa y una fundamentación para las capacidades propuestas.
Los PEPs tienen como propósito ser los mecanismos primarios para proponer nuevas y mayores capacidad, para recoger la opinión de la comunidad sobre un tema, y para documentar las decisiones de diseño que se han hecho en Python. El autor del PEP es el responsable de lograr consenso con la comunidad y documentar las opiniones disidentes.
Vea PEP 1.
- porción¶
Un conjunto de archivos en un único directorio (posiblemente guardo en un archivo comprimido zip) que contribuye a un espacio de nombres de paquete, como está definido en PEP 420.
- argumento posicional¶
Vea argument.
- API provisional¶
Una API provisoria es aquella que deliberadamente fue excluida de las garantías de compatibilidad hacia atrás de la biblioteca estándar. Aunque no se esperan cambios fundamentales en dichas interfaces, como están marcadas como provisionales, los cambios incompatibles hacia atrás (incluso remover la misma interfaz) podrían ocurrir si los desarrolladores principales lo estiman. Estos cambios no se hacen gratuitamente – solo ocurrirán si fallas fundamentales y serias son descubiertas que no fueron vistas antes de la inclusión de la API.
Incluso para APIs provisorias, los cambios incompatibles hacia atrás son vistos como una «solución de último recurso» - se intentará todo para encontrar una solución compatible hacia atrás para los problemas identificados.
Este proceso permite que la biblioteca estándar continúe evolucionando con el tiempo, sin bloquearse por errores de diseño problemáticos por períodos extensos de tiempo. Vea PEP 411 para más detalles.
- paquete provisorio¶
Vea provisional API.
- Python 3000¶
Apodo para la fecha de lanzamiento de Python 3.x (acuñada en un tiempo cuando llegar a la versión 3 era algo distante en el futuro.) También se lo abrevió como Py3k.
- Pythónico¶
Una idea o pieza de código que sigue ajustadamente la convenciones idiomáticas comunes del lenguaje Python, en vez de implementar código usando conceptos comunes a otros lenguajes. Por ejemplo, una convención común en Python es hacer bucles sobre todos los elementos de un iterable con la sentencia
for
. Muchos otros lenguajes no tienen este tipo de construcción, así que los que no están familiarizados con Python podrían usar contadores numéricos:for i in range(len(food)): print(food[i])
En contraste, un método Pythónico más limpio:
for piece in food: print(piece)
- nombre calificado¶
Un nombre con puntos mostrando la ruta desde el alcance global del módulo a la clase, función o método definido en dicho módulo, como se define en PEP 3155. Para las funciones o clases de más alto nivel, el nombre calificado es el igual al nombre del objeto:
>>> class C: ... class D: ... def meth(self): ... pass ... >>> C.__qualname__ 'C' >>> C.D.__qualname__ 'C.D' >>> C.D.meth.__qualname__ 'C.D.meth'
Cuando es usado para referirse a los módulos, nombre completamente calificado significa la ruta con puntos completo al módulo, incluyendo cualquier paquete padre, por ejemplo,
email.mime.text
:>>> import email.mime.text >>> email.mime.text.__name__ 'email.mime.text'
- contador de referencias¶
The number of references to an object. When the reference count of an object drops to zero, it is deallocated. Reference counting is generally not visible to Python code, but it is a key element of the CPython implementation. Programmers can call the
sys.getrefcount()
function to return the reference count for a particular object.- paquete regular¶
Un package tradicional, como aquellos con un directorio conteniendo el archivo
__init__.py
.Vea también namespace package.
- __slots__¶
Es una declaración dentro de una clase que ahorra memoria predeclarando espacio para las atributos de la instancia y eliminando diccionarios de la instancia. Aunque es popular, esta técnica es algo dificultosa de lograr correctamente y es mejor reservarla para los casos raros en los que existen grandes cantidades de instancias en aplicaciones con uso crítico de memoria.
- secuencia¶
An iterable which supports efficient element access using integer indices via the
__getitem__()
special method and defines a__len__()
method that returns the length of the sequence. Some built-in sequence types arelist
,str
,tuple
, andbytes
. Note thatdict
also supports__getitem__()
and__len__()
, but is considered a mapping rather than a sequence because the lookups use arbitrary immutable keys rather than integers.The
collections.abc.Sequence
abstract base class defines a much richer interface that goes beyond just__getitem__()
and__len__()
, addingcount()
,index()
,__contains__()
, and__reversed__()
. Types that implement this expanded interface can be registered explicitly usingregister()
. For more documentation on sequence methods generally, see Common Sequence Operations.- comprensión de conjuntos¶
Una forma compacta de procesar todos o parte de los elementos en un iterable y retornar un conjunto con los resultados.
results = {c for c in 'abracadabra' if c not in 'abc'}
genera el conjunto de cadenas{'r', 'd'}
. Ver Despliegues para listas, conjuntos y diccionarios.- despacho único¶
Una forma de despacho de una generic function donde la implementación es elegida a partir del tipo de un sólo argumento.
- rebanada¶
Un objeto que contiene una porción de una sequence. Una rebanada es creada usando la notación de suscripto,
[]
con dos puntos entre los números cuando se ponen varios, como ennombre_variable[1:3:5]
. La notación con corchete (suscrito) usa internamente objetosslice
.- método especial¶
Un método que es llamado implícitamente por Python cuando ejecuta ciertas operaciones en un tipo, como la adición. Estos métodos tienen nombres que comienzan y terminan con doble barra baja. Los métodos especiales están documentados en Nombres especiales de método.
- sentencia¶
Una sentencia es parte de un conjunto (un «bloque» de código). Una sentencia tanto es una expression como alguna de las varias sintaxis usando una palabra clave, como
if
,while
ofor
.- static type checker¶
An external tool that reads Python code and analyzes it, looking for issues such as incorrect types. See also type hints and the
typing
module.- referencia fuerte¶
In Python’s C API, a strong reference is a reference to an object which is owned by the code holding the reference. The strong reference is taken by calling
Py_INCREF()
when the reference is created and released withPy_DECREF()
when the reference is deleted.La función
Py_NewRef()
se puede utilizar para crear una referencia fuerte a un objeto. Por lo general, se debe llamar a la funciónPy_DECREF()
en la referencia fuerte antes de salir del alcance de la referencia fuerte, para evitar filtrar una referencia.Consulte también borrowed reference.
- codificación de texto¶
A string in Python is a sequence of Unicode code points (in range
U+0000
–U+10FFFF
). To store or transfer a string, it needs to be serialized as a sequence of bytes.Serializing a string into a sequence of bytes is known as «encoding», and recreating the string from the sequence of bytes is known as «decoding».
There are a variety of different text serialization codecs, which are collectively referred to as «text encodings».
- archivo de texto¶
Un file object capaz de leer y escribir objetos
str
. Frecuentemente, un archivo de texto también accede a un flujo de datos binario y maneja automáticamente el text encoding. Ejemplos de archivos de texto que son abiertos en modo texto ('r'
o'w'
),sys.stdin
,sys.stdout
, y las instancias deio.StringIO
.Vea también binary file por objeto de archivos capaces de leer y escribir objeto tipo binario.
- cadena con triple comilla¶
Una cadena que está enmarcada por tres instancias de comillas (») o apostrofes (“). Aunque no brindan ninguna funcionalidad que no está disponible usando cadenas con comillas simple, son útiles por varias razones. Permiten incluir comillas simples o dobles sin escapar dentro de las cadenas y pueden abarcar múltiples líneas sin el uso de caracteres de continuación, haciéndolas particularmente útiles para escribir docstrings.
- tipo¶
El tipo de un objeto Python determina qué tipo de objeto es; cada objeto tiene un tipo. El tipo de un objeto puede ser accedido por su atributo
__class__
o puede ser conseguido usandotype(obj)
.- alias de tipos¶
Un sinónimo para un tipo, creado al asignar un tipo a un identificador.
Los alias de tipos son útiles para simplificar los indicadores de tipo. Por ejemplo:
def remove_gray_shades( colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]: pass
podría ser más legible así:
Color = tuple[int, int, int] def remove_gray_shades(colors: list[Color]) -> list[Color]: pass
- indicador de tipo¶
Una annotation que especifica el tipo esperado para una variable, un atributo de clase, un parámetro para una función o un valor de retorno.
Type hints are optional and are not enforced by Python but they are useful to static type checkers. They can also aid IDEs with code completion and refactoring.
Los indicadores de tipo de las variables globales, atributos de clase, y funciones, no de variables locales, pueden ser accedidos usando
typing.get_type_hints()
.- saltos de líneas universales¶
Una manera de interpretar flujos de texto en la cual son reconocidos como finales de línea todas siguientes formas: la convención de Unix para fin de línea
'\n'
, la convención de Windows'\r\n'
, y la vieja convención de Macintosh'\r'
. Vea PEP 278 y PEP 3116, además debytes.splitlines()
para usos adicionales.- anotación de variable¶
Una annotation de una variable o un atributo de clase.
Cuando se anota una variable o un atributo de clase, la asignación es opcional:
class C: field: 'annotation'
Las anotaciones de variables son frecuentemente usadas para type hints: por ejemplo, se espera que esta variable tenga valores de clase
int
:count: int = 0
La sintaxis de la anotación de variables está explicada en la sección Declaraciones de asignación anotadas.
Consulte function annotation, PEP 484 y PEP 526, que describen esta funcionalidad. Consulte también Prácticas recomendadas para las anotaciones para conocer las mejores prácticas sobre cómo trabajar con anotaciones.
- entorno virtual¶
Un entorno cooperativamente aislado de ejecución que permite a los usuarios de Python y a las aplicaciones instalar y actualizar paquetes de distribución de Python sin interferir con el comportamiento de otras aplicaciones de Python en el mismo sistema.
Vea también
venv
.- máquina virtual¶
Una computadora definida enteramente por software. La máquina virtual de Python ejecuta el bytecode generado por el compilador de bytecode.
- Zen de Python¶
Un listado de los principios de diseño y la filosofía de Python que son útiles para entender y usar el lenguaje. El listado puede encontrarse ingresando «
import this
» en la consola interactiva.