Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb02fcb4

Browse files
committed
Agregando sugerencias extending/extending
1 parentb8a82ea commitb02fcb4

File tree

2 files changed

+67
-68
lines changed

2 files changed

+67
-68
lines changed

‎dict

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,7 @@ reproducibles
790790
reproducible
791791
reStructuredText
792792
retrocompatible
793+
retrollamada
793794
remuestreo
794795
request
795796
reubicar

‎extending/extending.po

Lines changed: 66 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ msgstr ""
226226
"argumentos tienen el tipo correcto y sus componentes se han almacenado en "
227227
"las variables cuyas direcciones se pasan. Retorna falso (cero) si se pasó "
228228
"una lista de argumentos no válidos. En el último caso, también genera una "
229-
"excepción apropiada para que la función de llamada puedadevolver ``NULL`` "
229+
"excepción apropiada para que la función de llamada puedaretornar ``NULL`` "
230230
"inmediatamente (como vimos en el ejemplo)."
231231

232232
#:../Doc/extending/extending.rst:126
@@ -249,7 +249,7 @@ msgid ""
249249
msgstr""
250250
"Una convención importante en todo el intérprete de Python es la siguiente: "
251251
"cuando una función falla, debe establecer una condición de excepción y "
252-
"devolver un valor de error (generalmente un puntero ``NULL``). Las "
252+
"retornar un valor de error (generalmente un puntero ``NULL``). Las "
253253
"excepciones se almacenan en una variable global estática dentro del "
254254
"intérprete; Si esta variable es ``NULL``, no se ha producido ninguna "
255255
"excepción. Una segunda variable global almacena el\"valor asociado\" de la "
@@ -326,10 +326,10 @@ msgid ""
326326
"programmer."
327327
msgstr""
328328
"Cuando una función *f* que llama a otra función *g* detecta que la última "
329-
"falla, *f* deberíadevolver un valor de error (generalmente ``NULL`` o "
329+
"falla, *f* deberíaretornar un valor de error (generalmente ``NULL`` o "
330330
"``-1``). Debería *no* llamar a una de las funciones :c:func:`PyErr_\\*` --- "
331331
"una ya ha sido llamada por *g*. Se supone que la persona que llama *f* "
332-
"también debedevolver una indicación de error a *su* persona que llama, de "
332+
"también deberetornar una indicación de error a *su* persona que llama, de "
333333
"nuevo *sin* llamar :c:func:`PyErr_\\*`, y así sucesivamente --- la causa más "
334334
"detallada del error ya fue informado por la función que lo detectó por "
335335
"primera vez. Una vez que el error llega al bucle principal del intérprete de "
@@ -415,7 +415,7 @@ msgid ""
415415
"you have an argument whose value must be in a particular range or must "
416416
"satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate."
417417
msgstr""
418-
"La elección de qué excepciónplantear es totalmente suya. Hay objetos C "
418+
"La elección de qué excepciónlanzar es totalmente suya. Hay objetos C "
419419
"declarados previamente que corresponden a todas las excepciones de Python "
420420
"incorporadas, como :c:data:`PyExc_ZeroDivisionError`, que puede usar "
421421
"directamente. Por supuesto, debe elegir sabiamente las excepciones --- no "
@@ -440,7 +440,7 @@ msgid ""
440440
"and initialize it in your module's initialization function (:c:func:"
441441
"`PyInit_spam`) with an exception object::"
442442
msgstr""
443-
"e inicializa en la función de inicialización de su módulo (:c:func:"
443+
"y lo inicializa en la función de inicialización de su módulo (:c:func:"
444444
"`PyInit_spam`) con un objeto de excepción::"
445445

446446
#:../Doc/extending/extending.rst:235
@@ -535,7 +535,7 @@ msgid ""
535535
"Our :func:`spam.system` function must return the value of :c:data:`sts` as a "
536536
"Python object. This is done using the function :c:func:`PyLong_FromLong`. ::"
537537
msgstr""
538-
"Nuestra función :func:`spam.system` debedevolver el valor de :c:data:`sts` "
538+
"Nuestra función :func:`spam.system` deberetornar el valor de :c:data:`sts` "
539539
"como un objeto Python. Esto se hace usando la función :c:func:"
540540
"`PyLong_FromLong`. ::"
541541

@@ -544,8 +544,8 @@ msgid ""
544544
"In this case, it will return an integer object. (Yes, even integers are "
545545
"objects on the heap in Python!)"
546546
msgstr""
547-
"En este caso,devolverá un objeto entero. (Sí, ¡incluso los enteros son "
548-
"objetos en elmontón en Python!)"
547+
"En este caso,retornará un objeto entero. (Sí, ¡incluso los enteros son "
548+
"objetos en elmontículo (*heap*) en Python!)"
549549

550550
#:../Doc/extending/extending.rst:302
551551
msgid""
@@ -555,7 +555,7 @@ msgid ""
555555
"macro:`Py_RETURN_NONE` macro)::"
556556
msgstr""
557557
"Si tiene una función C que no retorna ningún argumento útil (una función que "
558-
"retorna :c:type:`void`), la función Python correspondiente debedevolver "
558+
"retorna :c:type:`void`), la función Python correspondiente deberetornar "
559559
"``None``. Necesita este modismo para hacerlo (que se implementa mediante la "
560560
"macro :c:macro:`Py_RETURN_NONE`)::"
561561

@@ -648,7 +648,7 @@ msgid ""
648648
msgstr""
649649
"Tenga en cuenta que PyMODINIT_FUNC declara la función como ``PyObject *`` "
650650
"tipo de retorno, declara cualquier declaración de vinculación especial "
651-
"requerida por la plataforma, y para C++ declara la función como ``extern\"C"
651+
"requerida por la plataforma, y para C++ declara la función como ``extern\"C"
652652
"\"``."
653653

654654
#:../Doc/extending/extending.rst:372
@@ -671,9 +671,9 @@ msgstr ""
671671
"recién creado en función de la tabla (un arreglo de estructuras :c:type:"
672672
"`PyMethodDef`) encontradas en la definición del módulo. :c:func:"
673673
"`PyModule_Create` retorna un puntero al objeto del módulo que crea. Puede "
674-
"abortar con un error fatal para ciertos errores, odevolver ``NULL`` si el "
674+
"abortar con un error fatal para ciertos errores, oretornar ``NULL`` si el "
675675
"módulo no se pudo inicializar satisfactoriamente. La función *init* debe "
676-
"devolver el objeto del módulo a su llamador, para que luego se inserte en "
676+
"retornar el objeto del módulo a su llamador, para que luego se inserte en "
677677
"``sys.modules``."
678678

679679
#:../Doc/extending/extending.rst:383
@@ -699,9 +699,9 @@ msgid ""
699699
msgstr""
700700
"Eliminar entradas de ``sys.modules`` o importar módulos compilados en "
701701
"múltiples intérpretes dentro de un proceso (o seguir un :c:func:`fork` sin "
702-
"una intervención :c:func:`exec`) puede crear problemas paraalguna extensión "
703-
"módulos Los autoresdel módulo deextensión deben tener precaución al "
704-
"inicializar estructuras de datos internas."
702+
"una intervención :c:func:`exec`) puede crear problemas paraalgunas "
703+
"extensiones demódulos. Los autoresde módulos deextensiones deben tener "
704+
"precaución alinicializar estructuras de datos internas."
705705

706706
#:../Doc/extending/extending.rst:433
707707
msgid""
@@ -758,11 +758,11 @@ msgid ""
758758
msgstr""
759759
"Si no puede utilizar la carga dinámica, o si desea que su módulo sea una "
760760
"parte permanente del intérprete de Python, tendrá que cambiar la "
761-
"configuraciónde configuracióny reconstruir el intérprete. Afortunadamente, "
762-
"estoes muy simple en Unix: simplemente coloque su archivo (:file:"
763-
"`spammodule.c`por ejemplo) en el directorio :file:`Modules/ ` de una "
764-
"distribución fuentedesempaquetada, agregue una línea al archivo :file:"
765-
"`Modules/Setup.local` quedescribe su archivo:"
761+
"configuración(*setup*)y reconstruir el intérprete. Afortunadamente, esto "
762+
"es muy simple en Unix: simplemente coloque su archivo (:file:`spammodule.c`"
763+
"por ejemplo) en el directorio :file:`Modules/ ` de una distribución fuente "
764+
"desempaquetada, agregue una línea al archivo :file:`Modules/Setup.local` que"
765+
"describe su archivo:"
766766

767767
#:../Doc/extending/extending.rst:468
768768
msgid""
@@ -803,12 +803,11 @@ msgstr ""
803803
"Hasta ahora nos hemos concentrado en hacer que las funciones de C puedan "
804804
"llamarse desde Python. Lo contrario también es útil: llamar a las funciones "
805805
"de Python desde C. Este es especialmente el caso de las bibliotecas que "
806-
"admiten las llamadas funciones de\"devolución de llamada\". Si una interfaz "
807-
"C utiliza devoluciones de llamada, el Python equivalente a menudo necesita "
808-
"proporcionar un mecanismo de devolución de llamada al programador de Python; "
809-
"la implementación requerirá llamar a las funciones de devolución de llamada "
810-
"de Python desde una devolución de llamada en C. Otros usos también son "
811-
"imaginables."
806+
"admiten las llamadas funciones de\"retrollamada\". Si una interfaz C "
807+
"utiliza retrollamadas, el Python equivalente a menudo necesita proporcionar "
808+
"un mecanismo de retrollamada al programador de Python; la implementación "
809+
"requerirá llamar a las funciones de retrollamada de Python desde una "
810+
"retrollamada en C. Otros usos también son imaginables."
812811

813812
#:../Doc/extending/extending.rst:495
814813
msgid""
@@ -880,7 +879,7 @@ msgid ""
880879
msgstr""
881880
"Más tarde, cuando es hora de llamar a la función, llama a la función C :c:"
882881
"func:`PyObject_CallObject`. Esta función tiene dos argumentos, ambos "
883-
"apuntadores a objetos arbitrarios de Python: la función Python y la lista de "
882+
"punteros a objetos arbitrarios de Python: la función Python y la lista de "
884883
"argumentos. La lista de argumentos siempre debe ser un objeto de tupla, cuya "
885884
"longitud es el número de argumentos. Para llamar a la función Python sin "
886885
"argumentos, pase ``NULL`` o una tupla vacía; para llamarlo con un argumento, "
@@ -930,7 +929,7 @@ msgstr ""
930929
"Sin embargo, antes de hacer esto, es importante verificar que el valor de "
931930
"retorno no sea ``NULL``. Si es así, la función de Python terminó generando "
932931
"una excepción. Si el código C que llamó :c:func:`PyObject_CallObject` se "
933-
"llama desde Python, ahora deberíadevolver una indicación de error a su "
932+
"llama desde Python, ahora deberíaretornar una indicación de error a su "
934933
"llamador de Python, para que el intérprete pueda imprimir un seguimiento de "
935934
"la pila, o el código de Python que llama puede manejar la excepción. Si esto "
936935
"no es posible o deseable, la excepción se debe eliminar llamando a :c:func:"
@@ -947,14 +946,14 @@ msgid ""
947946
"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if "
948947
"you want to pass an integral event code, you might use the following code::"
949948
msgstr""
950-
"Dependiendo de la interfaz deseada para la función dedevolución de llamada "
951-
"dePython, es posible que también deba proporcionar una lista de argumentos "
949+
"Dependiendo de la interfaz deseada para la función deretrollamada de "
950+
"Python, es posible que también deba proporcionar una lista de argumentos "
952951
"para :c:func:`PyObject_CallObject`. En algunos casos, el programa Python "
953952
"también proporciona la lista de argumentos, a través de la misma interfaz "
954-
"que especificó la función dedevolución de llamada. Luego se puede guardar y "
955-
"usar dela misma manera que el objeto de función. En otros casos, puede que "
956-
"tengaque construir una nueva tupla para pasarla como lista de argumentos. "
957-
"Laforma más sencilla de hacer esto es llamar a :c:func:`Py_BuildValue`. Por "
953+
"que especificó la función deretrollamada. Luego se puede guardar y usar de "
954+
"la misma manera que el objeto de función. En otros casos, puede que tenga "
955+
"que construir una nueva tupla para pasarla como lista de argumentos. La "
956+
"forma más sencilla de hacer esto es llamar a :c:func:`Py_BuildValue`. Por "
958957
"ejemplo, si desea pasar un código de evento integral, puede usar el "
959958
"siguiente código::"
960959

@@ -1122,8 +1121,8 @@ msgstr ""
11221121
"solo si su cadena de formato contiene dos o más unidades de formato. Si la "
11231122
"cadena de formato está vacía, retorna ``None``; si contiene exactamente una "
11241123
"unidad de formato, retorna el objeto que describa esa unidad de formato. "
1125-
"Para forzarlo adevolver una tupla de tamaño 0 o uno, paréntesisla cadena "
1126-
"de formato."
1124+
"Para forzarlo aretornar una tupla de tamaño 0 o uno,agregarparéntesisa "
1125+
"la cadenade formato."
11271126

11281127
#:../Doc/extending/extending.rst:822
11291128
msgid""
@@ -1144,9 +1143,9 @@ msgid ""
11441143
"``new`` and ``delete`` are used with essentially the same meaning and we'll "
11451144
"restrict the following discussion to the C case."
11461145
msgstr""
1147-
"En lenguajes como C o C++, el programador es responsable de la asignación "
1146+
"En lenguajes como C o C++, el programador es responsable de la asignación "
11481147
"dinámica y la desasignación de memoria en el montón. En C, esto se hace "
1149-
"usando las funciones :c:func:`malloc` y :c:func:`free`. En C++, los "
1148+
"usando las funciones :c:func:`malloc` y :c:func:`free`. En C++, los "
11501149
"operadores ``new`` y ``delete`` se usan esencialmente con el mismo "
11511150
"significado y restringiremos la siguiente discusión al caso C."
11521151

@@ -1276,7 +1275,7 @@ msgstr ""
12761275
"contienen referencias (posiblemente indirectas) a sí mismos, de modo que "
12771276
"cada objeto en el ciclo tiene un recuento de referencias que no es cero. Las "
12781277
"implementaciones típicas de recuento de referencias no pueden recuperar la "
1279-
"memoria que pertenece aningún objeto en un ciclo de referencia, o "
1278+
"memoria que pertenece aalgún objeto en un ciclo de referencia, o "
12801279
"referenciada a partir de los objetos en el ciclo, a pesar de que no hay más "
12811280
"referencias al ciclo en sí."
12821281

@@ -1426,7 +1425,7 @@ msgstr ""
14261425
"`Py_BuildValue`, pasan la propiedad al receptor. Incluso si el objeto no es "
14271426
"realmente nuevo, aún recibirá la propiedad de una nueva referencia a ese "
14281427
"objeto. Por ejemplo, :c:func:`PyLong_FromLong` mantiene un caché de valores "
1429-
"populares y puededevolver una referencia a un elemento en caché."
1428+
"populares y puederetornar una referencia a un elemento en caché."
14301429

14311430
#:../Doc/extending/extending.rst:981
14321431
msgid""
@@ -1566,11 +1565,11 @@ msgid ""
15661565
msgstr""
15671566
"Como está escrito en Python, el método :meth:`__del__` puede ejecutar código "
15681567
"arbitrario de Python. ¿Podría hacer algo para invalidar la referencia a "
1569-
"``elemento`` en :c:func:`error`?Usted apuesta! Suponiendo que la lista pasó "
1570-
"a :c:func:`bug` es accesible para el método :meth:`__del__`, podría ejecutar "
1571-
"una declaración en el sentido de ``del list[0]``, y suponiendo que este "
1572-
"fuera el última referencia a ese objeto, liberaría la memoria asociada con "
1573-
"él, invalidando así el ``elemento``."
1568+
"``item`` en :c:func:`error`?¡Tenlo por seguro! Suponiendo que la lista "
1569+
"pasadoa :c:func:`bug` es accesible para el método :meth:`__del__`, podría "
1570+
"ejecutaruna declaración en el sentido de ``del list[0]``, y suponiendo que "
1571+
"estefuera el última referencia a ese objeto, liberaría la memoria asociada "
1572+
"conél, invalidando así el ``elemento``."
15741573

15751574
#:../Doc/extending/extending.rst:1051
15761575
msgid""
@@ -1706,16 +1705,16 @@ msgid ""
17061705
"`` --- they use this form already if the symbol ``__cplusplus`` is defined "
17071706
"(all recent C++ compilers define this symbol)."
17081707
msgstr""
1709-
"Es posible escribir módulos de extensión en C++. Se aplican algunas "
1708+
"Es posible escribir módulos de extensión en C++. Se aplican algunas "
17101709
"restricciones. Si el compilador de C compila y vincula el programa principal "
17111710
"(el intérprete de Python), no se pueden usar objetos globales o estáticos "
17121711
"con constructores. Esto no es un problema si el programa principal está "
1713-
"vinculado por el compilador de C++. Las funciones que serán llamadas por el "
1712+
"vinculado por el compilador de C++. Las funciones que serán llamadas por el "
17141713
"intérprete de Python (en particular, las funciones de inicialización del "
17151714
"módulo) deben declararse usando ``extern\"C\"``. No es necesario encerrar "
17161715
"los archivos de encabezado de Python en ``extern\"C\" {...}`` --- ya usan "
17171716
"este formulario si el símbolo ``__cplusplus`` está definido (todos los "
1718-
"compiladores recientes de C++ definen este símbolo) ."
1717+
"compiladores recientes de C++ definen este símbolo) ."
17191718

17201719
#:../Doc/extending/extending.rst:1147
17211720
msgid"Providing a C API for an Extension Module"
@@ -1756,19 +1755,19 @@ msgid ""
17561755
"call might not have been loaded yet!"
17571756
msgstr""
17581757
"A primera vista, esto parece fácil: simplemente escriba las funciones (sin "
1759-
"declararlas ``estáticas``, por supuesto), proporcione un archivo de "
1760-
"encabezadoapropiado y documente la API de C. Y, de hecho, esto funcionaría "
1761-
"si todoslos módulos de extensión siempre estuvieran vinculados "
1762-
"estáticamente con elintérprete de Python. Sin embargo, cuando los módulos "
1763-
"se usan comobibliotecas compartidas, los símbolos definidos en un módulo "
1764-
"pueden no servisibles para otro módulo. Los detalles de visibilidad "
1765-
"dependen del sistemaoperativo; algunos sistemas usan un espacio de nombres "
1766-
"global para elintérprete de Python y todos los módulos de extensión "
1767-
"(Windows, porejemplo), mientras que otros requieren una lista explícita de "
1768-
"símbolosimportados en el momento del enlace del módulo (AIX es un ejemplo) "
1769-
"u ofrecenuna variedad de estrategias diferentes (la mayoría Unices). E "
1770-
"incluso si lossímbolos son visibles a nivel mundial, ¡el módulo cuyas "
1771-
"funciones uno deseallamar podría no haberse cargado todavía!"
1758+
"declararlas ``static``, por supuesto), proporcione un archivo de encabezado "
1759+
"apropiado y documente la API de C. Y, de hecho, esto funcionaría si todos "
1760+
"los módulos de extensión siempre estuvieran vinculados estáticamente con el "
1761+
"intérprete de Python. Sin embargo, cuando los módulos se usan como "
1762+
"bibliotecas compartidas, los símbolos definidos en un módulo pueden no ser "
1763+
"visibles para otro módulo. Los detalles de visibilidad dependen del sistema "
1764+
"operativo; algunos sistemas usan un espacio de nombres global para el "
1765+
"intérprete de Python y todos los módulos de extensión (Windows, por "
1766+
"ejemplo), mientras que otros requieren una lista explícita de símbolos "
1767+
"importados en el momento del enlace del módulo (AIX es un ejemplo) u ofrecen "
1768+
"una variedad de estrategias diferentes (la mayoría Unices). E incluso si los "
1769+
"símbolos son visibles a nivel mundial, ¡el módulo cuyas funciones uno desea "
1770+
"llamar podría no haberse cargado todavía!"
17721771

17731772
#:../Doc/extending/extending.rst:1172
17741773
msgid""
@@ -1781,7 +1780,7 @@ msgid ""
17811780
msgstr""
17821781
"Por lo tanto, la portabilidad requiere no hacer suposiciones sobre la "
17831782
"visibilidad del símbolo. Esto significa que todos los símbolos en los "
1784-
"módulos de extensión deben declararse ``estáticos``, excepto la función de "
1783+
"módulos de extensión deben declararse ``static``, excepto la función de "
17851784
"inicialización del módulo, para evitar conflictos de nombres con otros "
17861785
"módulos de extensión (como se discutió en la sección :ref:`methodtable`). Y "
17871786
"significa que los símbolos que *deberían* ser accesibles desde otros módulos "
@@ -1892,17 +1891,16 @@ msgstr ""
18921891
"sección :ref:`extending-simpleexample`. La función :func:`spam.system` no "
18931892
"llama a la función de la biblioteca C :c:func:`system` directamente, sino "
18941893
"una función :c:func:`PySpam_System`, que por supuesto haría algo más "
1895-
"complicado en la realidad (como agregar\"spam\" a cada comando). Esta "
1896-
"función :c:func:`PySpam_System` también se exporta a otros módulos de "
1897-
"extensión."
1894+
"complicado en realidad (como agregar\"spam\" a cada comando). Esta función :"
1895+
"c:func:`PySpam_System` también se exporta a otros módulos de extensión."
18981896

18991897
#:../Doc/extending/extending.rst:1225
19001898
msgid""
19011899
"The function :c:func:`PySpam_System` is a plain C function, declared "
19021900
"``static`` like everything else::"
19031901
msgstr""
19041902
"La función :c:func:`PySpam_System` es una función C simple, declarada "
1905-
"``estática`` como todo lo demás::"
1903+
"``static`` como todo lo demás::"
19061904

19071905
#:../Doc/extending/extending.rst:1234
19081906
msgid"The function :c:func:`spam_system` is modified in a trivial way::"
@@ -1933,7 +1931,7 @@ msgid ""
19331931
"Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array "
19341932
"would disappear when :func:`PyInit_spam` terminates!"
19351933
msgstr""
1936-
"Tenga en cuenta que ``PySpam_API`` se declara ``estático``; de lo contrario, "
1934+
"Tenga en cuenta que ``PySpam_API`` se declara ``static``; de lo contrario, "
19371935
"la matriz de punteros desaparecería cuando :func:`PyInit_spam` finalice!"
19381936

19391937
#:../Doc/extending/extending.rst:1290

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp