diff --git a/reference/datamodel.po b/reference/datamodel.po index 64a7eeb182..1823e3dee8 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -11,16 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-06-09 20:48-0500\n" +"PO-Revision-Date: 2020-12-21 18:46-0600\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Carlos Joel Delgado Pizarro \n" +"Last-Translator: Miguel Ángel Ramírez \n" "Language: es\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" @@ -598,9 +598,10 @@ msgid "" "placing a comma-separated list of expressions in square brackets. (Note that " "there are no special cases needed to form lists of length 0 or 1.)" msgstr "" -"The items of a list are arbitrary Python objects. Lists are formed by " -"placing a comma-separated list of expressions in square brackets. (Note that " -"there are no special cases needed to form lists of length 0 or 1.)" +"Los elementos de una lista son objetos de Python arbitrarios. Las listas se " +"forman colocando una lista de expresiones separadas por comas entre " +"corchetes. (Tome en cuenta que no hay casos especiales necesarios para " +"formar listas de longitud 0 o 1.)" #: ../Doc/reference/datamodel.rst:356 msgid "Byte Arrays" @@ -1019,12 +1020,20 @@ msgid "" "`__module__` is the name of the module the method was defined in, or " "``None`` if unavailable." msgstr "" +"Atributos especiales de solo lectura: :attr:`__self__` es el objeto de " +"instancia de clase, :attr:`__func__` es el objeto de función; :attr:" +"`__doc__` es la documentación del método (al igual que ``__func__." +"__doc__``); :attr:`~definition.__name__` es el nombre del método (al igual " +"que ``__func__.__name__``); :attr:`__module__` es el nombre del módulo en el " +"que el método fue definido, o ``None`` si no se encuentra disponible." #: ../Doc/reference/datamodel.rst:578 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying function object." msgstr "" +"Los métodos también admiten obtener (más no establecer) los atributos " +"arbitrarios de la función en el objeto de función subyacente." #: ../Doc/reference/datamodel.rst:581 msgid "" @@ -1032,6 +1041,10 @@ msgid "" "class (perhaps via an instance of that class), if that attribute is a user-" "defined function object or a class method object." msgstr "" +"Los objetos de métodos definidos por usuarios pueden ser creados al obtener " +"el atributo de una clase (probablemente a través de la instancia de dicha " +"clase), si tal atributo es el objeto de una función definida por el usuario " +"o el objeto del método de una clase." #: ../Doc/reference/datamodel.rst:585 msgid "" @@ -1040,6 +1053,11 @@ msgid "" "attribute is the instance, and the method object is said to be bound. The " "new method's :attr:`__func__` attribute is the original function object." msgstr "" +"Cuando un objeto de instancia de método es creado al obtener un objeto de " +"función definida por el usuario desde una clase a través de una de sus " +"instancias, su atributo :attr:`__self__` es la instancia, y el objeto de " +"método se dice que está enlazado. El nuevo atributo de método :attr:" +"`__func__` es el objeto de función original." #: ../Doc/reference/datamodel.rst:591 msgid "" @@ -1048,6 +1066,10 @@ msgid "" "itself, and its :attr:`__func__` attribute is the function object underlying " "the class method." msgstr "" +"Cuando un objeto de instancia de método es creado al obtener un objeto de " +"método de clase a partir de una clase o instancia, su atributo :attr:" +"`__self__` es la clase misma, y su atributo :attr:`__func__` es el objeto de " +"función subyacente al método de la clase." #: ../Doc/reference/datamodel.rst:596 msgid "" @@ -1057,6 +1079,12 @@ msgid "" "contains a definition for a function :meth:`f`, and ``x`` is an instance of :" "class:`C`, calling ``x.f(1)`` is equivalent to calling ``C.f(x, 1)``." msgstr "" +"Cuando el objeto de la instancia de método es invocado, la función " +"subyacente (:attr:`__func__`) es llamada, insertando la instancia de clase (:" +"attr:`__self__`) delante de la lista de argumentos. Por ejemplo, cuando :" +"class:`C` es una clase que contiene la definición de una función :meth:`f`, " +"y ``x`` es una instancia de :class:`C`, invocar ``x.f(1)`` es equivalente a " +"invocar ``C.f(x, 1)``." #: ../Doc/reference/datamodel.rst:603 msgid "" @@ -1065,6 +1093,10 @@ msgid "" "itself, so that calling either ``x.f(1)`` or ``C.f(1)`` is equivalent to " "calling ``f(C,1)`` where ``f`` is the underlying function." msgstr "" +"Cuando el objeto de instancia de método es derivado del objeto del método de " +"clase, la “instancia de clase” almacenada en :attr:`__self__` en realidad " +"será la clase misma, de manera que invocar ya sea ``x.f(1)``o ``C.f(1)`` es " +"equivalente a invocar ``f(C,1)`` donde ``f`` es la función subyacente." #: ../Doc/reference/datamodel.rst:608 msgid "" @@ -1078,10 +1110,20 @@ msgid "" "class instance are not converted to bound methods; this *only* happens when " "the function is an attribute of the class." msgstr "" +"Tome en cuenta que la transformación de objeto de función a objeto de método " +"de instancia ocurre cada vez que el atributo es obtenido de la instancia. " +"En algunos casos, una optimización fructífera es asignar el atributo a una " +"variable local e invocarla. Note también que esta transformación únicamente " +"ocurre con funciones definidas por usuario; otros objetos invocables (y " +"todos los objetos no invocables) son obtenidos sin transformación. También " +"es importante mencionar que las funciones definidas por el usuario, que son " +"atributos de la instancia de una clase no son convertidos a métodos " +"enlazados; esto ocurre *únicamente* cuando la función es un atributo de la " +"clase." #: ../Doc/reference/datamodel.rst:632 msgid "Generator functions" -msgstr "" +msgstr "Funciones generadoras" #: ../Doc/reference/datamodel.rst:624 msgid "" @@ -1095,10 +1137,19 @@ msgid "" "raised and the iterator will have reached the end of the set of values to be " "returned." msgstr "" +"Una función o método que utiliza la declaración :keyword:`yield` (ver " +"sección :ref:`yield`) se llama :dfn:`generator function`. Dicha función, " +"cuando es invocada, siempre devuelve un objeto iterador que puede ser " +"utilizado para ejecutar el cuerpo de la función: invocando el método " +"iterador :meth:`iterator.__next__` hará que la función se ejecute hasta " +"proporcionar un valor utilizando la declaración :keyword:`!yield`. Cuando " +"la función ejecuta una declaración :keyword:`return` o llega hasta el final, " +"una excepción :exc:`StopIteration` es lanzada y el iterador habrá llegado al " +"final del conjunto de valores a ser devueltos." #: ../Doc/reference/datamodel.rst:642 msgid "Coroutine functions" -msgstr "" +msgstr "Funciones de corrutina" #: ../Doc/reference/datamodel.rst:638 msgid "" @@ -1108,10 +1159,15 @@ msgid "" "as :keyword:`async with` and :keyword:`async for` statements. See also the :" "ref:`coroutine-objects` section." msgstr "" +"Una función o método que es definido utilizando :keyword:`async def` se " +"llama :dfn:`coroutine function`. Dicha función, cuando es invocada, retorna " +"un objeto :term:`coroutine`. Éste puede contener expresiones :keyword:" +"`await`, así como declaraciones :keyword:`async with` y :keyword:`async " +"for`. Ver también la sección :ref:`coroutine-objects`." #: ../Doc/reference/datamodel.rst:661 msgid "Asynchronous generator functions" -msgstr "" +msgstr "Funciones generadoras asincrónicas" #: ../Doc/reference/datamodel.rst:649 msgid "" @@ -1121,6 +1177,11 @@ msgid "" "object which can be used in an :keyword:`async for` statement to execute the " "body of the function." msgstr "" +"Una función o método que es definido usando :keyword:`async def` y que " +"utiliza la declaración :keyword:`yield` se llama :dfn:`asynchronous " +"generator function`. Dicha función, al ser invocada, retorna un objeto " +"iterador asincrónico que puede ser utilizado en una declaración :keyword:" +"`async for` para ejecutar el cuerpo de la función." #: ../Doc/reference/datamodel.rst:655 msgid "" @@ -1131,10 +1192,16 @@ msgid "" "`StopAsyncIteration` exception is raised and the asynchronous iterator will " "have reached the end of the set of values to be yielded." msgstr "" +"Invocando el método del iterador asincrónico :meth:`aiterator.__anext__` " +"retornará un :term:`awaitable` que al ser esperado se ejecutará hasta " +"proporcionar un valor utilizando la expresión :keyword:`yield`. Cuando la " +"función ejecuta una declaración :keyword:`return` vacía o llega a su final, " +"una excepción :exc:`StopAsyncIteration` es lanzada y el iterador asincrónico " +"habrá llegado al final del conjunto de valores a ser producidos." #: ../Doc/reference/datamodel.rst:676 msgid "Built-in functions" -msgstr "" +msgstr "Funciones incorporadas" #: ../Doc/reference/datamodel.rst:669 msgid "" @@ -1147,10 +1214,20 @@ msgid "" "``None`` (but see the next item); :attr:`__module__` is the name of the " "module the function was defined in or ``None`` if unavailable." msgstr "" +"Un objeto de función incorporada es un envoltorio (wrapper) alrededor de una " +"función C. Ejemplos de funciones incorporadas son :func:`len` y :func:`math." +"sin` (:mod:`math` es un módulo estándar incorporado). El número y tipo de " +"argumentos son determinados por la función C. Atributos especiales de solo " +"lectura: :attr:`__doc__` es la cadena de documentación de la función, o " +"``None`` si no se encuentra disponible; :attr:`~definition.__name__` es el " +"nombre de la función; :attr:`__init__` es establecido como ``None`` (sin " +"embargo ver el siguiente elemento); :attr:`__module__` es el nombre del " +"módulo en el que la función fue definida o ``None`` si no se encuentra " +"disponible." #: ../Doc/reference/datamodel.rst:688 msgid "Built-in methods" -msgstr "" +msgstr "Métodos incorporados" #: ../Doc/reference/datamodel.rst:684 msgid "" @@ -1160,10 +1237,16 @@ msgid "" "*alist* is a list object. In this case, the special read-only attribute :" "attr:`__self__` is set to the object denoted by *alist*." msgstr "" +"Éste es realmente un disfraz distinto de una función incorporada, esta vez " +"teniendo un objeto que se pasa a la función C como un argumento extra " +"implícito. Un ejemplo de un método incorporado es ``alist.append()``, " +"asumiendo que *alist* es un objeto de lista. En este caso, el atributo " +"especial de solo lectura :attr:`__self__` es establecido al objeto indicado " +"por *alist*." #: ../Doc/reference/datamodel.rst:695 msgid "Classes" -msgstr "" +msgstr "Clases" #: ../Doc/reference/datamodel.rst:691 msgid "" @@ -1173,20 +1256,27 @@ msgid "" "`__new__` and, in the typical case, to :meth:`__init__` to initialize the " "new instance." msgstr "" +"Las clases son invocables. Estos objetos normalmente actúan como fábricas " +"de nuevas instancias de ellos mismos, pero las variaciones son posibles para " +"los tipos de clases que anulan :meth:`__new__`. Los argumentos de la " +"invocación son pasados a :meth:`__new__` y, en el caso típico, a :meth:" +"`__init__` para iniciar la nueva instancia." #: ../Doc/reference/datamodel.rst:700 msgid "Class Instances" -msgstr "" +msgstr "Instancias de clases" #: ../Doc/reference/datamodel.rst:698 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`__call__` method in their class." msgstr "" +"Las instancias de clases arbitrarias se pueden hacer invocables definiendo " +"el método :meth:`__call__` en su clase." #: ../Doc/reference/datamodel.rst:750 msgid "Modules" -msgstr "" +msgstr "Módulos" #: ../Doc/reference/datamodel.rst:707 msgid "" @@ -1201,12 +1291,25 @@ msgid "" "not contain the code object used to initialize the module (since it isn't " "needed once the initialization is done)." msgstr "" +"Los módulos son una unidad básica organizacional en código Python, y son " +"creados por el :ref:`import system ` al ser invocados ya sea " +"por la declaración :keyword:`import`, o invocando funciones como :func:" +"`importlib.import_module` y la incorporada :func:`__import__`. Un objeto de " +"módulo tiene un espacio de nombres implementado por un objeto de diccionario " +"(éste es el diccionario al que hace referencia el atributo de funciones " +"``__globals__`` definido en el módulo). Las referencias de atributos son " +"traducidas a búsquedas en este diccionario, p. ej., ``m.x`` es equivalente a " +"``m.__dict__[“x”]``. Un objeto de módulo no contiene el objeto de código " +"utilizado para iniciar el módulo (ya que no es necesario una vez que la " +"inicialización es realizada)." #: ../Doc/reference/datamodel.rst:719 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" +"La asignación de atributos actualiza el diccionario de espacio de nombres " +"del módulo, p. ej., ``m.x = 1`` es equivalente a ``m.__dict__[“x”] = 1``." #: ../Doc/reference/datamodel.rst:729 msgid "" @@ -1221,12 +1324,25 @@ msgid "" "loaded dynamically from a shared library, it is the pathname of the shared " "library file." msgstr "" +"Atributos predefinidos (escribibles): :attr:`__name__` es el nombre del " +"módulo; :attr:`__doc__` es la cadena de documentación del módulo, o ``None`` " +"si no se encuentra disponible; :attr:`__annotations__` (opcional) es un " +"diccionario que contiene :term:`variable annotations ` " +"recolectado durante la ejecución del cuerpo del módulo; :attr:`__file__` es " +"el nombre de ruta del archivo en el cual el módulo fue cargado, si fue " +"cargado desde un archivo. El atributo :attr:`__file__` puede faltar para " +"ciertos tipos de módulos, tal como módulos C que son vinculados " +"estáticamente al intérprete; para módulos de extensión cargados " +"dinámicamente desde una librería compartida, es el nombre de ruta del " +"archivo de la librería compartida." #: ../Doc/reference/datamodel.rst:742 msgid "" "Special read-only attribute: :attr:`~object.__dict__` is the module's " "namespace as a dictionary object." msgstr "" +"El atributo especial de solo lectura :attr:`~object.__dict__` es el espacio " +"de nombres del módulo como un objeto de diccionario." #: ../Doc/reference/datamodel.rst:747 msgid "" @@ -1235,10 +1351,15 @@ msgid "" "still has live references. To avoid this, copy the dictionary or keep the " "module around while using its dictionary directly." msgstr "" +"Debido a la manera en la que CPython limpia los diccionarios de módulo, el " +"diccionario de módulo será limpiado cuando el módulo se encuentra fuera de " +"alcance, incluso si el diccionario aún tiene referencias existentes. Para " +"evitar esto, copie el diccionario o mantenga el módulo cerca mientras usa el " +"diccionario directamente." #: ../Doc/reference/datamodel.rst:809 msgid "Custom classes" -msgstr "" +msgstr "Clases personalizadas" #: ../Doc/reference/datamodel.rst:753 msgid "" @@ -1255,6 +1376,19 @@ msgid "" "found in the documentation accompanying the 2.3 release at https://www." "python.org/download/releases/2.3/mro/." msgstr "" +"Los tipos de clases personalizadas son normalmente creadas por definiciones " +"de clases (ver sección :ref:`class`). Una clase tiene implementado un " +"espacio de nombres por un objeto de diccionario. Las referencias de " +"atributos de clase son traducidas a búsquedas en este diccionario, p. ej., " +"``C.x`` es traducido a ``C.__dict__[“x”]`` (aunque hay una serie de enlaces " +"que permiten la ubicación de atributos por otros medios). Cuando el nombre " +"de atributo no es encontrado ahí, la búsqueda de atributo continúa en las " +"clases base. Esta búsqueda de las clases base utiliza la orden de resolución " +"de métodos C3 que se comporta correctamente aún en la presencia de " +"estructuras de herencia ‘diamante’ donde existen múltiples rutas de herencia " +"que llevan a un ancestro común. Detalles adicionales en el MRO C3 utilizados " +"por Python pueden ser encontrados en la documentación correspondiente a la " +"versión 2.3 en https://www.python.org/download/releases/2.3/mro/." #: ../Doc/reference/datamodel.rst:777 msgid "" @@ -1266,18 +1400,30 @@ msgid "" "attributes retrieved from a class may differ from those actually contained " "in its :attr:`~object.__dict__`." msgstr "" +"Cuando la referencia de un atributo de clase (digamos, para la clase :class:" +"`C`) produce un objeto de método de clase, éste es transformado a un objeto " +"de método de instancia cuyo atributo :attr:`__self__` es :class:`C`. Cuando " +"produce un objeto de un método estático, éste es transformado al objeto " +"envuelto por el objeto de método estático. Ver sección :ref:`descriptors` " +"para otra manera en la que los atributos obtenidos de una clase pueden " +"diferir de los que en realidad están contenidos en su :attr:`~object." +"__dict__`." #: ../Doc/reference/datamodel.rst:787 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." msgstr "" +"Las asignaciones de atributos de clase actualizan el diccionario de la " +"clase, nunca el diccionario de la clase base." #: ../Doc/reference/datamodel.rst:792 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." msgstr "" +"Un objeto de clase puede ser invocado (ver arriba) para producir una " +"instancia de clase (ver a continuación)." #: ../Doc/reference/datamodel.rst:802 msgid "" @@ -1290,10 +1436,19 @@ msgid "" "(optional) is a dictionary containing :term:`variable annotations ` collected during class body execution." msgstr "" +"Atributos especiales: :attr:`~definition.__name__` es el nombre de la " +"clase; :attr:`__module__` es el nombre del módulo en el que la clase fue " +"definida; :attr:`~object.__dict__` es el diccionario que contiene el espacio " +"de nombres de la clase; :attr:`~class.__bases__` es una tupla que contiene " +"las clases base, en orden de ocurrencia en la lista de clases base; :attr:" +"`__doc__` es la cadena de documentación de la clase, o ``None`` si no está " +"definida; :attr:`__annotations__` (opcional) es un diccionario que contiene :" +"term:`variable annotations ` recolectado durante la " +"ejecución del cuerpo de la clase." #: ../Doc/reference/datamodel.rst:852 msgid "Class instances" -msgstr "" +msgstr "Instancias de clase" #: ../Doc/reference/datamodel.rst:818 msgid "" @@ -1311,6 +1466,21 @@ msgid "" "class attribute is found, and the object's class has a :meth:`__getattr__` " "method, that is called to satisfy the lookup." msgstr "" +"Una instancia de clase es creado al invocar un objeto de clase (ver " +"arriba). Una instancia de clase tiene implementado un espacio de nombres " +"como diccionario que es el primer lugar en el que se buscan referencias de " +"atributos. Cuando un atributo no es encontrado ahí, y la clase de instancia " +"tiene un atributo con ese nombre, la búsqueda continúa con los atributos de " +"clase. Si se encuentra que un atributo de clase es un objeto de función " +"definido por el usuario, es transformado en un objeto de método de instancia " +"cuyo atributo :attr:`__self__` es la instancia. Los objetos de método y " +"método de clase estáticos también son transformados; ver más adelante debajo " +"de “Clases”. Ver sección :ref:`descriptors` para otra forma en la que los " +"atributos de una clase obtenida a través de sus instancias puede diferir de " +"los objetos realmente almacenados en el :attr:`~object.__dict__` de la " +"clase. Si no se encuentra ningún atributo de clase, y la clase del objeto " +"tiene un método :meth:`__getattr__`, éste es llamado para satisfacer la " +"búsqueda." #: ../Doc/reference/datamodel.rst:834 msgid "" @@ -1319,22 +1489,31 @@ msgid "" "`__delattr__` method, this is called instead of updating the instance " "dictionary directly." msgstr "" +"Asignación y eliminación de atributos actualizan el diccionario de la " +"instancia, nunca el diccionario de la clase. Si la clase tiene un método :" +"meth:`__setattr__` o :meth:`__delattr__`, éste es invocado en lugar de " +"actualizar el diccionario de la instancia directamente." #: ../Doc/reference/datamodel.rst:844 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." msgstr "" +"Instancias de clases pueden pretender ser números, secuencias o mapeos si " +"tienen métodos con ciertos nombres especiales. Ver sección :ref:" +"`specialnames`." #: ../Doc/reference/datamodel.rst:851 msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." msgstr "" +"Atributos especiales: :attr:`~object.__dict__` es el diccionario de " +"atributos; :attr:`~instance.__class__` es la clase de la instancia." #: ../Doc/reference/datamodel.rst:878 msgid "I/O objects (also known as file objects)" -msgstr "" +msgstr "Objetos E/S (también conocidos como objetos de archivo)" #: ../Doc/reference/datamodel.rst:868 msgid "" @@ -1344,6 +1523,11 @@ msgid "" "makefile` method of socket objects (and perhaps by other functions or " "methods provided by extension modules)." msgstr "" +"Un :term:`file object` representa un archivo abierto. Diversos accesos " +"directos se encuentran disponibles para crear objetos de archivo: la función " +"incorporada :func:`open`, así como :func:`os.popen`, :func:`os.fdopen`, y el " +"método de objetos socket :meth:`~socket.makefile` (y quizás por otras " +"funciones y métodos proporcionados por módulos de extensión)." #: ../Doc/reference/datamodel.rst:874 msgid "" @@ -1352,10 +1536,15 @@ msgid "" "and error streams; they are all open in text mode and therefore follow the " "interface defined by the :class:`io.TextIOBase` abstract class." msgstr "" +"Los objetos ``sys.stdin``, ``sys.stdout`` y ``sys.stderr`` son iniciados a " +"objetos de archivos correspondientes a la entrada y salida estándar del " +"intérprete, así como flujos de error; todos ellos están abiertos en el modo " +"de texto y por lo tanto siguen la interface definida por la clase abstracta :" +"class:`io.TextIOBase`." #: ../Doc/reference/datamodel.rst:1123 msgid "Internal types" -msgstr "" +msgstr "Tipos internos" #: ../Doc/reference/datamodel.rst:885 msgid "" @@ -1363,10 +1552,13 @@ msgid "" "Their definitions may change with future versions of the interpreter, but " "they are mentioned here for completeness." msgstr "" +"Algunos tipos utilizados internamente por el intérprete son expuestos al " +"usuario. Sus definiciones pueden cambiar en futuras versiones del " +"intérprete, pero son mencionadas aquí para complementar." #: ../Doc/reference/datamodel.rst:960 msgid "Code objects" -msgstr "" +msgstr "Objetos de código" #: ../Doc/reference/datamodel.rst:892 msgid "" @@ -1379,6 +1571,16 @@ msgid "" "run-time). Unlike function objects, code objects are immutable and contain " "no references (directly or indirectly) to mutable objects." msgstr "" +"Los objetos de código representan código de Python ejecutable *compilado por " +"bytes*, o :term:`bytecode`. La diferencia entre un objeto de código y un " +"objeto de función es que el objeto de función contiene una referencia " +"explícita a los globales de la función (el módulo en el que fue definido), " +"mientras el objeto de código no contiene contexto; de igual manera los " +"valores por defecto de los argumentos son almacenados en el objeto de " +"función, no en el objeto de código (porque representan valores calculados en " +"tiempo de ejecución). A diferencia de objetos de función, los objetos de " +"código son inmutables y no contienen referencias (directas o indirectas) a " +"objetos mutables." #: ../Doc/reference/datamodel.rst:919 msgid "" @@ -1403,6 +1605,28 @@ msgid "" "interpreter); :attr:`co_stacksize` is the required stack size; :attr:" "`co_flags` is an integer encoding a number of flags for the interpreter." msgstr "" +"Atributos especiales de solo lectura: :attr:`co_name` da el nombre de la " +"función; :attr:`co_argcount` es el número total de argumentos posicionales " +"(incluyendo argumentos únicamente posicionales y argumentos con valores por " +"default); :attr:`co_posonlyargcount` es el número de argumentos únicamente " +"posicionales (incluyendo argumentos con valores por default); :attr:" +"`co_kwonlyargcountp` es el número de argumentos solo de palabra clave " +"(incluyendo argumentos con valores por default); :attr:`co_nlocals` es el " +"número de variables usadas por la función (incluyendo argumentos); :attr:" +"`co_varnames` es una tupla que contiene los nombres con las variables " +"locales (empezando con los nombres de argumento); :attr:`co_cellvars` es una " +"tupla que contiene los nombres de variables locales que son referenciadas " +"por funciones anidadas; :attr:`co_freevars` es una tupla que contiene los " +"nombres de variables libres; :attr:`co_code` es una cadena que representa la " +"secuencia de instrucciones de bytecode; :attr:`co_consts` es una tupla que " +"contiene las literales usadas por el bytecode; :attr:`co_names` es una tupla " +"que contiene los nombres usados por el bytecode; :attr:`co_filename` es el " +"nombre de archivo de donde el código fue compilado; :attr:`co_firstlineno` " +"es el primer número de línea de la función; :attr:`co_lnotab` es una cadena " +"codificando el mapeo desde el desplazamiento de bytecode al número de líneas " +"(ver el código fuente del intérprete para más detalles); :attr:" +"`co_stacksize` es el tamaño de pila requerido; :attr:`co_flags` es un entero " +"codificando el número de banderas para el intérprete." #: ../Doc/reference/datamodel.rst:943 msgid "" @@ -1412,6 +1636,12 @@ msgid "" "``**keywords`` syntax to accept arbitrary keyword arguments; bit ``0x20`` is " "set if the function is a generator." msgstr "" +"Los siguientes bits de bandera son definidos por :attr:`co_flags` : bit " +"``0x04`` es establecido si la función utiliza la sintaxis ``*arguments`` " +"para aceptar un número arbitrario de argumentos posicionales; bit ``0x08`` " +"es establecido si la función utiliza la sintaxis ``**keywords`` para aceptar " +"argumentos de palabras clave arbitrarios; bit ``0x20`` es establecido si la " +"función es un generador." #: ../Doc/reference/datamodel.rst:949 msgid "" @@ -1421,26 +1651,38 @@ msgid "" "compiled with future division enabled; bits ``0x10`` and ``0x1000`` were " "used in earlier versions of Python." msgstr "" +"Declaraciones de características futuras (``from __future__ import " +"division``) también utiliza bits en :attr:`co_flags` para indicar si el " +"objeto de código fue compilado con alguna característica particular " +"habilitada: el bit ``0x2000`` es establecido si la función fue compilada con " +"división futura habilitada; los bits ``0x10`` y ``0x1000`` fueron utilizados " +"en versiones previas de Python." #: ../Doc/reference/datamodel.rst:955 msgid "Other bits in :attr:`co_flags` are reserved for internal use." -msgstr "" +msgstr "Otros bits en :attr:`co_flags` son reservados para uso interno." #: ../Doc/reference/datamodel.rst:959 msgid "" "If a code object represents a function, the first item in :attr:`co_consts` " "is the documentation string of the function, or ``None`` if undefined." msgstr "" +"Si un objeto de código representa una función, el primer elemento en :attr:" +"`co_consts` es la cadena de documentación de la función, o ``None`` si no " +"está definido." #: ../Doc/reference/datamodel.rst:1019 msgid "Frame objects" -msgstr "" +msgstr "Objetos de marco" #: ../Doc/reference/datamodel.rst:967 msgid "" "Frame objects represent execution frames. They may occur in traceback " "objects (see below), and are also passed to registered trace functions." msgstr "" +"Los objetos de marco representan marcos de ejecución. Pueden ocurrir en " +"objetos de rastreo (ver a continuación), y son también pasados hacia " +"funciones de rastreo registradas." #: ../Doc/reference/datamodel.rst:978 msgid "" @@ -1452,6 +1694,14 @@ msgid "" "names; :attr:`f_lasti` gives the precise instruction (this is an index into " "the bytecode string of the code object)." msgstr "" +"Atributos especiales de solo lectura: :attr:`f_back` es para el marco de " +"pila anterior (hacia quien produce el llamado), o ``None`` si éste es el " +"marco de pila inferior; :attr:`f_code` es el objeto de código ejecutado en " +"este marco; :attr:`f_locals` es el diccionario utilizado para buscar " +"variables locales; :attr:`f_globals` es usado por las variables globales; :" +"attr:`f_builtins` es utilizado por nombres incorporados (intrínsecos); :attr:" +"`f_lasti` da la instrucción precisa (éste es un índice dentro de la cadena " +"de bytecode del objeto de código)." #: ../Doc/reference/datamodel.rst:992 msgid "" @@ -1460,6 +1710,11 @@ msgid "" "debugger). Normally an event is triggered for each new source line - this " "can be disabled by setting :attr:`f_trace_lines` to :const:`False`." msgstr "" +"Atributos especiales escribibles: :attr:`f_trace`, de lo contrario ``None``, " +"es una función llamada por distintos eventos durante la ejecución del código " +"(éste es utilizado por el depurador). Normalmente un evento es desencadenado " +"por cada una de las líneas fuente - esto puede ser deshabilitado " +"estableciendo :attr:`f_trace_lines` a :const:`False`." #: ../Doc/reference/datamodel.rst:997 msgid "" @@ -1468,6 +1723,11 @@ msgid "" "undefined interpreter behaviour if exceptions raised by the trace function " "escape to the function being traced." msgstr "" +"Las implementaciones *pueden* permitir que eventos por código de operación " +"sean solicitados estableciendo :attr:`f_trace_opcodes` a :const:`True`. " +"Tenga en cuenta que esto puede llevar a un comportamiento indefinido del " +"intérprete si se levantan excepciones por la función de rastreo escape hacia " +"la función que está siendo rastreada." #: ../Doc/reference/datamodel.rst:1002 msgid "" @@ -1476,10 +1736,15 @@ msgid "" "most frame). A debugger can implement a Jump command (aka Set Next " "Statement) by writing to f_lineno." msgstr "" +":attr:`f_lineno` es el número de línea actual del marco --- escribiendo a " +"esta forma dentro de una función de rastreo salta a la línea dada (solo para " +"el último marco). Un depurador puede implementar un comando de salto " +"(*Jump*) (también conocido como *Set Next Statement*) al escribir en " +"f_lineno." #: ../Doc/reference/datamodel.rst:1007 msgid "Frame objects support one method:" -msgstr "" +msgstr "Objetos de marco soportan un método:" #: ../Doc/reference/datamodel.rst:1011 msgid "" @@ -1488,14 +1753,19 @@ msgid "" "This helps break reference cycles involving frame objects (for example when " "catching an exception and storing its traceback for later use)." msgstr "" +"Este método limpia todas las referencias a variables locales mantenidas por " +"el marco. También, si el marco pertenecía a un generador, éste es " +"finalizado. Esto ayuda a interrumpir los ciclos de referencia que involucran " +"objetos de marco (por ejemplo al detectar una excepción y almacenando su " +"rastro para uso posterior)." #: ../Doc/reference/datamodel.rst:1017 msgid ":exc:`RuntimeError` is raised if the frame is currently executing." -msgstr "" +msgstr ":exc:`RuntimeError` es lanzado si el marco se encuentra en ejecución." #: ../Doc/reference/datamodel.rst:1079 msgid "Traceback objects" -msgstr "" +msgstr "Objetos de seguimiento de pila (traceback)" #: ../Doc/reference/datamodel.rst:1034 msgid "" @@ -1503,6 +1773,10 @@ msgid "" "object is implicitly created when an exception occurs, and may also be " "explicitly created by calling :class:`types.TracebackType`." msgstr "" +"Los objetos de seguimiento de pila representan el trazo de pila (*stack " +"trace*) de una excepción. Un objeto de rastreo es creado de manera implícita " +"cuando se da una excepción, y puede ser creada de manera explícita al " +"llamar :class:`types.TracebackType`." #: ../Doc/reference/datamodel.rst:1038 msgid "" @@ -1513,6 +1787,13 @@ msgid "" "`try`.) It is accessible as the third item of the tuple returned by ``sys." "exc_info()``, and as the ``__traceback__`` attribute of the caught exception." msgstr "" +"Para seguimientos de pila (tracebacks) creados de manera implícita, cuando " +"la búsqueda por un manejo de excepciones desenvuelve la pila de ejecución, " +"en cada nivel de desenvolvimiento se inserta un objeto de rastreo al frente " +"del rastreo actual. Cuando se entra a un manejo de excepción, la pila de " +"rastreo se vuelve disponible para el programa. (Ver sección :ref:`try`.) Es " +"accesible como el tercer elemento de la tupla devuelta por ``sys." +"exc_info()``, y como el atributo ``__traceback__`` de la excepción capturada." #: ../Doc/reference/datamodel.rst:1046 msgid "" @@ -1520,6 +1801,10 @@ msgid "" "(nicely formatted) to the standard error stream; if the interpreter is " "interactive, it is also made available to the user as ``sys.last_traceback``." msgstr "" +"Cuando el programa no contiene un gestor apropiado, el trazo de pila es " +"escrito (muy bien formateado) a la secuencia de error estándar; si el " +"intérprete es interactivo, también se vuelve disponible al usuario como " +"``sys.last_traceback``." #: ../Doc/reference/datamodel.rst:1051 msgid "" @@ -1527,6 +1812,9 @@ msgid "" "to determine how the ``tb_next`` attributes should be linked to form a full " "stack trace." msgstr "" +"Para seguimientos de pila creados de forma explícita, depende de su creador " +"determinar cómo los atributos ``tb_next`` deberían ser ligados para formar " +"un trazo de pila completo (*full stack trace*)." #: ../Doc/reference/datamodel.rst:1061 msgid "" @@ -1537,6 +1825,13 @@ msgid "" "number of its frame object if the exception occurred in a :keyword:`try` " "statement with no matching except clause or with a finally clause." msgstr "" +"Atributos especiales de solo lectura: :attr:`tb_frame` apunta al marco de " +"ejecución del nivel actual; :attr:`tb_lineno` da el número de línea donde " +"ocurrió la excepción; :attr:`tb_lasti` indica la instrucción precisa. El " +"número de línea y la última instrucción en el seguimiento de pila puede " +"diferir del número de línea de su objeto de marco si la excepción ocurrió en " +"una declaración :keyword:`try` sin una cláusula de excepción (except) " +"correspondiente o con una cláusula *finally*." #: ../Doc/reference/datamodel.rst:1073 msgid "" @@ -1544,22 +1839,31 @@ msgid "" "trace (towards the frame where the exception occurred), or ``None`` if there " "is no next level." msgstr "" +"Atributo especial escribible: :attr:`tb_next` es el siguiente nivel en el " +"trazo de pila (hacia el marco en donde ocurrió la excepción), o ``None`` si " +"no existe un siguiente nivel." #: ../Doc/reference/datamodel.rst:1077 msgid "" "Traceback objects can now be explicitly instantiated from Python code, and " "the ``tb_next`` attribute of existing instances can be updated." msgstr "" +"Los objetos de seguimiento de pila ya pueden ser instanciados de manera " +"explícita desde código de Python, y el atributo ``tb_next`` de instancias " +"existentes puede ser actualizado." #: ../Doc/reference/datamodel.rst:1105 msgid "Slice objects" -msgstr "" +msgstr "Objetos de segmento (Slice objects)" #: ../Doc/reference/datamodel.rst:1084 msgid "" "Slice objects are used to represent slices for :meth:`__getitem__` methods. " "They are also created by the built-in :func:`slice` function." msgstr "" +"Los objetos de segmento son utilizados para representar segmentos para " +"métodos :meth:`__getitem__`. También son creados por la función incorporada :" +"func:`slice`." #: ../Doc/reference/datamodel.rst:1092 msgid "" @@ -1567,10 +1871,14 @@ msgid "" "`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " "each is ``None`` if omitted. These attributes can have any type." msgstr "" +"Atributos especiales de solo lectura: :attr:`~slice.start` es el límite " +"inferior; :attr:`~slice.stop` es el límite superior; :attr:`~slice.step` es " +"el valor de paso; cada uno es ``None`` si es omitido. Estos atributos pueden " +"ser de cualquier tipo." #: ../Doc/reference/datamodel.rst:1096 msgid "Slice objects support one method:" -msgstr "" +msgstr "Los objetos de segmento soportan un método:" #: ../Doc/reference/datamodel.rst:1100 msgid "" @@ -1581,10 +1889,16 @@ msgid "" "stride length of the slice. Missing or out-of-bounds indices are handled in " "a manner consistent with regular slices." msgstr "" +"Este método toma un argumento *length* de entero simple y calcula " +"información relacionada con el segmento que el mismo describiría si fuera " +"aplicado a una secuencia de elementos *length*. Devuelve una tupla de tres " +"enteros; respectivamente estos son los índices *start* y *stop* y el *step* " +"o longitud del paso del segmento. Índices faltantes o fuera de los límites " +"son manipulados de manera consistente con segmentos regulares." #: ../Doc/reference/datamodel.rst:1115 msgid "Static method objects" -msgstr "" +msgstr "Objetos de método estático" #: ../Doc/reference/datamodel.rst:1108 msgid "" @@ -1597,10 +1911,17 @@ msgid "" "callable, although the objects they wrap usually are. Static method objects " "are created by the built-in :func:`staticmethod` constructor." msgstr "" +"Los objetos de método estático proveen una forma de anular la transformación " +"de objetos de función a objetos de método descritos anteriormente. Un objeto " +"de método estático es una envoltura (wrapper) alrededor de cualquier otro " +"objeto, usualmente un objeto de método definido por usuario. Cuando un " +"objeto de método estático es obtenido desde una clase o una instancia de " +"clase, usualmente el objeto retornado es el objeto envuelto, el cual no está " +"objeto a ninguna transformación adicional." #: ../Doc/reference/datamodel.rst:1123 msgid "Class method objects" -msgstr "" +msgstr "Objetos de método de clase" #: ../Doc/reference/datamodel.rst:1118 msgid "" @@ -1610,10 +1931,17 @@ msgid "" "retrieval is described above, under \"User-defined methods\". Class method " "objects are created by the built-in :func:`classmethod` constructor." msgstr "" +"Un objeto de método de clase, igual que un objeto de método estático, es un " +"envoltorio (wrapper) alrededor de otro objeto que altera la forma en la que " +"el objeto es obtenido desde las clases y las instancias de clase. El " +"comportamiento de los objetos de método de clase sobre tal obtención es " +"descrita más arriba, debajo de “Métodos definidos por usuario”. Objetos de " +"clase de método son creados por el constructor incorporado :func:" +"`classmethod`." #: ../Doc/reference/datamodel.rst:1128 msgid "Special method names" -msgstr "" +msgstr "Nombres especiales de método" #: ../Doc/reference/datamodel.rst:1134 msgid "" @@ -1628,6 +1956,17 @@ msgid "" "appropriate method is defined (typically :exc:`AttributeError` or :exc:" "`TypeError`)." msgstr "" +"Una clase puede implementar ciertas operaciones que son invocadas por " +"sintaxis especiales (como operaciones aritméticas o de sub-índice y " +"segmentación) definiendo métodos con nombres especiales. Este es el enfoque " +"de Python hacia :dfn:`operator overloading`, permitiendo a las clases " +"definir su propio comportamiento con respecto a los operadores del lenguaje. " +"Por ejemplo, si una clase define un método llamado :meth:`__getitem__`, y " +"``x`` es una instancia de esta clase, entonces ``x[i]`` es aproximadamente " +"equivalente a ``type(x).__getitem__(x, i)``. A excepción de donde se " +"menciona, los intentos por ejecutar una operación lanzan una excepción " +"cuando no es definido un método apropiado (normalmente :exc:`AttributeError` " +"o :exc:`TypeError`)." #: ../Doc/reference/datamodel.rst:1144 msgid "" @@ -1637,6 +1976,11 @@ msgid "" "instances will raise a :exc:`TypeError` (without falling back to :meth:" "`__getitem__`). [#]_" msgstr "" +"Estableciendo un método especial a ``None`` indica que la operación " +"correspondiente no se encuentra disponible. Por ejemplo, si una clase " +"establece :meth:`__iter__` a ``None``, la clase no es iterable, así que " +"llamando :func:`iter` en sus instancias lanzará un :exc:`TypeError` (sin " +"volver a :meth:`__getitem__`). [#]_" #: ../Doc/reference/datamodel.rst:1150 msgid "" @@ -1647,10 +1991,17 @@ msgid "" "sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " "the W3C's Document Object Model.)" msgstr "" +"Cuando se implementa una clase que emula cualquier tipo incorporado, es " +"importante que la emulación solo sea implementado al grado que hace sentido " +"para el objeto que está siendo modelado. Por ejemplo, algunas secuencias " +"pueden trabajar bien con la obtención de elementos individuales, pero " +"extraer un segmento puede no tener mucho sentido. (Un ejemplo de esto es la " +"interfaz :class:`~xml.dom.NodeList`, en el Modelo de Objetos del Documento " +"del W3C.)" #: ../Doc/reference/datamodel.rst:1161 msgid "Basic customization" -msgstr "" +msgstr "Personalización básica" #: ../Doc/reference/datamodel.rst:1167 msgid "" @@ -1661,6 +2012,13 @@ msgid "" "(the call to the class). The return value of :meth:`__new__` should be the " "new object instance (usually an instance of *cls*)." msgstr "" +"Es llamado para crear una nueva instancia de clase *cls*. :meth:`__new__` es " +"un método estático (como un caso especial, así que no se necesita declarar " +"como tal) que toma la clase de donde fue solicitada una instancia como su " +"primer argumento. Los argumentos restantes son aquellos que se pasan a la " +"expresión del constructor de objetos (para llamar a la clase). El valor " +"retornado de :meth:`__new__` deberá ser la nueva instancia de objeto " +"(normalmente una instancia de *cls*)." #: ../Doc/reference/datamodel.rst:1174 msgid "" @@ -1669,6 +2027,10 @@ msgid "" "with appropriate arguments and then modifying the newly-created instance as " "necessary before returning it." msgstr "" +"Implementaciones típicas crean una nueva instancia de la clase invocando el " +"método :meth:`__new__` de la súper clase utilizando ``super().__new__(cls[, " +"…])`` con argumentos apropiados y después modificando la recién creada " +"instancia como necesaria antes de retornarla." #: ../Doc/reference/datamodel.rst:1179 msgid "" @@ -1678,12 +2040,19 @@ msgid "" "new instance and the remaining arguments are the same as were passed to the " "object constructor." msgstr "" +"Si :meth:`__new__` es invocado durante la construcción del objeto y éste " +"retorna una instancia o subclase de *cls*, entonces el nuevo método :meth:" +"`__init__` de la instancia será invocado como ``__init__(self[, …])``, donde " +"*self* es la nueva instancia y los argumentos restantes son iguales como " +"fueron pasados hacia el constructor de objetos." #: ../Doc/reference/datamodel.rst:1184 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" +"Si :meth:`__new__` no devuelve una instancia de *cls*, entonces el nuevo " +"método :meth:`__init__` de la instancia no será invocado." #: ../Doc/reference/datamodel.rst:1187 msgid "" @@ -1692,6 +2061,10 @@ msgid "" "commonly overridden in custom metaclasses in order to customize class " "creation." msgstr "" +":meth:`__new__` es destinado principalmente para permitir a subclases de " +"tipos inmutables (como int, str, o tuple) personalizar la creación de " +"instancias. También es comúnmente anulado en metaclases personalizadas con " +"el fin de personalizar la creación de clase." #: ../Doc/reference/datamodel.rst:1196 msgid "" @@ -1702,14 +2075,27 @@ msgid "" "ensure proper initialization of the base class part of the instance; for " "example: ``super().__init__([args...])``." msgstr "" +"Llamado después de que la instancia ha sido creada (por :meth:`__new__`), " +"pero antes es retornada a quien produce la llamada. Los argumentos son " +"aquellos pasados a la expresión del constructor de la clase. Si una clase " +"base tiene un método :meth:`__init__`, el método :meth:`__init__` de clase " +"derivada, de existir, debe llamarlo explícitamente para asegurar la " +"inicialización apropiada de la clase base que es parte de la instancia; por " +"ejemplo: ``super().__init__([args…])``." #: ../Doc/reference/datamodel.rst:1203 +#, fuzzy msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " "it), no non-``None`` value may be returned by :meth:`__init__`; doing so " "will cause a :exc:`TypeError` to be raised at runtime." msgstr "" +"Debido a que :meth:`__new__` y :meth:`__init__` trabajan juntos construyendo " +"objetos (:meth:`__new__` para crearlo y :meth:`__init__` para " +"personalizarlo), ningún valor distinto a ``None`` puede ser retornado por :" +"meth:`__init__`; hacer esto puede causar que se lance una excepción :exc:" +"`TypeError` en tiempo de ejecución." #: ../Doc/reference/datamodel.rst:1216 msgid "" @@ -1719,6 +2105,11 @@ msgid "" "explicitly call it to ensure proper deletion of the base class part of the " "instance." msgstr "" +"Llamado cuando la instancia es a punto de ser destruida. Esto también es " +"llamado finalizador o (indebidamente) destructor. Si una clase base tiene un " +"método :meth:`__del__` el método :meth:`__del__` de la clase derivada, de " +"existir, debe llamarlo explícitamente para asegurar la eliminación adecuada " +"de la parte de la clase base de la instancia." #: ../Doc/reference/datamodel.rst:1222 msgid "" @@ -1729,12 +2120,20 @@ msgid "" "about to be destroyed; the current :term:`CPython` implementation only calls " "it once." msgstr "" +"Es posible (¡aunque no recomendable!) para el método :meth:`__del__` " +"posponer la destrucción de la instancia al crear una nueva referencia hacia " +"ésta. Esto es llamado *resurrección* de objeto. Es dependiente de la " +"implementación si :meth:`__del__` es llamado una segunda vez cuando un " +"objeto resucitado está por ser destruido; la implementación :term:`CPython` " +"actual únicamente lo llama una vez." #: ../Doc/reference/datamodel.rst:1229 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits." msgstr "" +"No está garantizado que los métodos :meth:`__del__` sean llamados para " +"objetos que aún existen cuando el intérprete se cierra." #: ../Doc/reference/datamodel.rst:1234 msgid "" @@ -1742,6 +2141,9 @@ msgid "" "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" +"``del x`` no llama directamente ``x.__del__()`` --- el primero disminuye el " +"conteo de referencia para ``x`` uno por uno, y el segundo es llamado " +"únicamente cuando el conteo de referencias de ``x`` llega a cero." #: ../Doc/reference/datamodel.rst:1249 msgid "Documentation for the :mod:`gc` module."