@@ -1197,7 +1197,7 @@ msgid ""
11971197"result, the function becomes identically accessible from either an object or "
11981198"a class."
11991199msgstr ""
1200- "Los métodos estáticos devuelven la función subyacente sin cambios. Llamar a "
1200+ "Los métodos estáticos retornan la función subyacente sin cambios. Llamar a "
12011201"``c.f`` o ``C.f`` es equivalente a una búsqueda directa en ``object."
12021202"__getattribute__(c, \" f\" )`` o en ``object.__getattribute__(C, \" f\" )``. "
12031203"Como resultado, la función se vuelve idénticamente accesible desde un objeto "
@@ -1237,7 +1237,7 @@ msgid ""
12371237"Since static methods return the underlying function with no changes, the "
12381238"example calls are unexciting:"
12391239msgstr ""
1240- "Dado que los métodos estáticos devuelven la función subyacente sin cambios, "
1240+ "Dado que los métodos estáticos retornan la función subyacente sin cambios, "
12411241"las llamadas de ejemplo carecen de interés::"
12421242
12431243#: ../Doc/howto/descriptor.rst:1253
@@ -1419,176 +1419,3 @@ msgstr ""
14191419#: ../Doc/howto/descriptor.rst:1629
14201420msgid "Misspelled or unassigned attributes will raise an exception:"
14211421msgstr "Atributos mal deletreados o no asignados lazarán una excepción:"
1422-
1423- #~ msgid ""
1424- #~ "Defines descriptors, summarizes the protocol, and shows how descriptors "
1425- #~ "are called. Examines a custom descriptor and several built-in Python "
1426- #~ "descriptors including functions, properties, static methods, and class "
1427- #~ "methods. Shows how each works by giving a pure Python equivalent and a "
1428- #~ "sample application."
1429- #~ msgstr ""
1430- #~ "Definir los descriptores, resumir el protocolo y mostrar como los "
1431- #~ "descriptores son llamados. Estudiar un descriptor personalizado y varios "
1432- #~ "descriptores de Python incorporados, incluidas funciones, propiedades, "
1433- #~ "métodos estáticos y métodos de clase. Mostrar como funciona cada uno "
1434- #~ "proporcionando un equivalente puro de Python y un ejemplo de aplicación."
1435-
1436- #~ msgid ""
1437- #~ "In general, a descriptor is an object attribute with \"binding behavior"
1438- #~ "\", one whose attribute access has been overridden by methods in the "
1439- #~ "descriptor protocol. Those methods are :meth:`__get__`, :meth:`__set__`, "
1440- #~ "and :meth:`__delete__`. If any of those methods are defined for an "
1441- #~ "object, it is said to be a descriptor."
1442- #~ msgstr ""
1443- #~ "En general, un descriptor es un atributo de objeto con \"comportamiento "
1444- #~ "vinculante\", dónde el acceso al atributo ha sido reemplazado por métodos "
1445- #~ "en el protocolo del descriptor. Esos métodos son :meth:`__get__`, :meth:"
1446- #~ "`__set__` y :meth:`__delete__`. Si alguno de esos métodos está definido "
1447- #~ "para un objeto, se dice que es un descriptor."
1448-
1449- #~ msgid ""
1450- #~ "Descriptors are a powerful, general purpose protocol. They are the "
1451- #~ "mechanism behind properties, methods, static methods, class methods, and :"
1452- #~ "func:`super()`. They are used throughout Python itself to implement the "
1453- #~ "new style classes introduced in version 2.2. Descriptors simplify the "
1454- #~ "underlying C-code and offer a flexible set of new tools for everyday "
1455- #~ "Python programs."
1456- #~ msgstr ""
1457- #~ "Los descriptores son un potente protocolo de propósito general. Son el "
1458- #~ "mecanismo detrás de las propiedades, métodos, métodos estáticos, métodos "
1459- #~ "de clase y :func:`super()`. Se utilizan en todo Python para implementar "
1460- #~ "las clases de nuevo estilo introducidas en la versión 2.2. Los "
1461- #~ "descriptores simplifican el código C subyacente y ofrecen un conjunto "
1462- #~ "flexible de nuevas herramientas para los programas de Python cotidianos."
1463-
1464- #~ msgid "Invoking Descriptors"
1465- #~ msgstr "Invocar descriptores"
1466-
1467- #~ msgid ""
1468- #~ "Alternatively, it is more common for a descriptor to be invoked "
1469- #~ "automatically upon attribute access. For example, ``obj.d`` looks up "
1470- #~ "``d`` in the dictionary of ``obj``. If ``d`` defines the method :meth:"
1471- #~ "`__get__`, then ``d.__get__(obj)`` is invoked according to the precedence "
1472- #~ "rules listed below."
1473- #~ msgstr ""
1474- #~ "Alternativamente, es más común que un descriptor se invoque "
1475- #~ "automáticamente al acceder a un atributo. Por ejemplo, ``obj.d`` busca "
1476- #~ "``d`` en el diccionario de ``obj``. Si ``d`` define el método :meth:"
1477- #~ "`__get__`, entonces se invoca ``d.__get__(obj)`` de acuerdo con las "
1478- #~ "reglas de precedencia que se enumeran a continuación."
1479-
1480- #~ msgid ""
1481- #~ "For objects, the machinery is in :meth:`object.__getattribute__` which "
1482- #~ "transforms ``b.x`` into ``type(b).__dict__['x'].__get__(b, type(b))``. "
1483- #~ "The implementation works through a precedence chain that gives data "
1484- #~ "descriptors priority over instance variables, instance variables priority "
1485- #~ "over non-data descriptors, and assigns lowest priority to :meth:"
1486- #~ "`__getattr__` if provided. The full C implementation can be found in :c:"
1487- #~ "func:`PyObject_GenericGetAttr()` in :source:`Objects/object.c`."
1488- #~ msgstr ""
1489- #~ "Para los objetos, el mecanismo se encuentra en :meth:`object."
1490- #~ "__getattribute__` que transforma ``b.x`` en ``type(b).__dict__['x']."
1491- #~ "__get__(b, type(b))``. La implementación funciona a través de una cadena "
1492- #~ "de precedencia que da a los descriptores de datos prioridad sobre las "
1493- #~ "variables de instancia, a las variables de instancia prioridad sobre los "
1494- #~ "descriptores de no-datos y asigna la prioridad más baja a :meth:"
1495- #~ "`__getattr__` si se proporciona. La implementación completa en C se puede "
1496- #~ "encontrar en :c:func:`PyObject_GenericGetAttr()` en :source:`Objects/"
1497- #~ "object.c`."
1498-
1499- #~ msgid ""
1500- #~ "For classes, the machinery is in :meth:`type.__getattribute__` which "
1501- #~ "transforms ``B.x`` into ``B.__dict__['x'].__get__(None, B)``. In pure "
1502- #~ "Python, it looks like::"
1503- #~ msgstr ""
1504- #~ "Para clases, el mecanismo se define en :meth:`type.__getattribute__` que "
1505- #~ "transforma ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python "
1506- #~ "puro, quedaría así::"
1507-
1508- #~ msgid ""
1509- #~ "The object returned by ``super()`` also has a custom :meth:"
1510- #~ "`__getattribute__` method for invoking descriptors. The attribute lookup "
1511- #~ "``super(B, obj).m`` searches ``obj.__class__.__mro__`` for the base class "
1512- #~ "``A`` immediately following ``B`` and then returns ``A.__dict__['m']."
1513- #~ "__get__(obj, B)``. If not a descriptor, ``m`` is returned unchanged. If "
1514- #~ "not in the dictionary, ``m`` reverts to a search using :meth:`object."
1515- #~ "__getattribute__`."
1516- #~ msgstr ""
1517- #~ "El objeto devuelto por ``super()`` también tiene un método personalizado :"
1518- #~ "meth:`__getattribute__` para poder invocar descriptores. La búsqueda de "
1519- #~ "atributo ``super(B, obj).m`` busca ``obj.__class__.__mro__`` para la "
1520- #~ "clase base ``A`` inmediatamente después de ``B`` y luego devuelve ``A."
1521- #~ "__dict__['m'].__get__(obj, B)``. Si no es un descriptor, se devuelve "
1522- #~ "``m`` sin cambios. Si no está en el diccionario, ``m`` revierte a una "
1523- #~ "búsqueda usando :meth:`object.__getattribute__`."
1524-
1525- #~ msgid ""
1526- #~ "The details above show that the mechanism for descriptors is embedded in "
1527- #~ "the :meth:`__getattribute__()` methods for :class:`object`, :class:"
1528- #~ "`type`, and :func:`super`. Classes inherit this machinery when they "
1529- #~ "derive from :class:`object` or if they have a meta-class providing "
1530- #~ "similar functionality. Likewise, classes can turn-off descriptor "
1531- #~ "invocation by overriding :meth:`__getattribute__()`."
1532- #~ msgstr ""
1533- #~ "Los detalles anteriores muestran que el mecanismo para los descriptores "
1534- #~ "está incrustado en los métodos :meth:`__getattribute__()` para :class:"
1535- #~ "`object`, :class:`type` y :func:`super`. Las clases heredan este "
1536- #~ "mecanismo cuando derivan de :class:`object` o mediante una metaclase que "
1537- #~ "proporcione funcionalidades similares. Del mismo modo, las clases pueden "
1538- #~ "desactivar la invocación del descriptor redefiniendo :meth:"
1539- #~ "`__getattribute__()`."
1540-
1541- #~ msgid ""
1542- #~ "The following code creates a class whose objects are data descriptors "
1543- #~ "which print a message for each get or set. Overriding :meth:"
1544- #~ "`__getattribute__` is alternate approach that could do this for every "
1545- #~ "attribute. However, this descriptor is useful for monitoring just a few "
1546- #~ "chosen attributes::"
1547- #~ msgstr ""
1548- #~ "El siguiente código crea una clase cuyos objetos son descriptores de "
1549- #~ "datos que imprimen un mensaje para cada lectura o escritura. Redefinir :"
1550- #~ "meth:`__getattribute__` es un enfoque alternativo que podría hacer esto "
1551- #~ "para cada atributo. Sin embargo, este descriptor es útil para monitorizar "
1552- #~ "solo algunos atributos elegidos::"
1553-
1554- #~ msgid ""
1555- #~ "The protocol is simple and offers exciting possibilities. Several use "
1556- #~ "cases are so common that they have been packaged into individual function "
1557- #~ "calls. Properties, bound methods, static methods, and class methods are "
1558- #~ "all based on the descriptor protocol."
1559- #~ msgstr ""
1560- #~ "El protocolo es simple y ofrece interesantes posibilidades. Varios casos "
1561- #~ "de uso son tan comunes que se han empaquetado en llamadas a funciones "
1562- #~ "individuales. Las propiedades, los métodos vinculados, los métodos "
1563- #~ "estáticos y los métodos de clase se basan en el protocolo descriptor."
1564-
1565- #~ msgid ""
1566- #~ "Class dictionaries store methods as functions. In a class definition, "
1567- #~ "methods are written using :keyword:`def` or :keyword:`lambda`, the usual "
1568- #~ "tools for creating functions. Methods only differ from regular functions "
1569- #~ "in that the first argument is reserved for the object instance. By "
1570- #~ "Python convention, the instance reference is called *self* but may be "
1571- #~ "called *this* or any other variable name."
1572- #~ msgstr ""
1573- #~ "Los diccionarios de clase almacenan los métodos como funciones. En una "
1574- #~ "definición de clase, los métodos se escriben usando :keyword:`def` o :"
1575- #~ "keyword:`lambda`, las herramientas habituales para crear funciones. Los "
1576- #~ "métodos solo difieren de las funciones regulares en que el primer "
1577- #~ "argumento está reservado para la instancia del objeto. Por convención en "
1578- #~ "Python, la referencia de instancia se llama *self* pero puede llamarse "
1579- #~ "*this* o cualquier otro nombre de variable."
1580-
1581- #~ msgid ""
1582- #~ "To support method calls, functions include the :meth:`__get__` method for "
1583- #~ "binding methods during attribute access. This means that all functions "
1584- #~ "are non-data descriptors which return bound methods when they are invoked "
1585- #~ "from an object. In pure Python, it works like this::"
1586- #~ msgstr ""
1587- #~ "Para admitir llamadas a métodos, las funciones incluyen el método :meth:"
1588- #~ "`__get__` para vincular métodos durante el acceso a atributos. Esto "
1589- #~ "significa que todas las funciones son descriptores de no-datos que "
1590- #~ "devuelven métodos enlazados cuando se invocan desde un objeto. En Python "
1591- #~ "puro, funciona así::"
1592-
1593- #~ msgid "Static Methods and Class Methods"
1594- #~ msgstr "Métodos estáticos y métodos de clase"
0 commit comments