@@ -12,7 +12,7 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version :Python 3.11\n "
1414"Report-Msgid-Bugs-To :\n "
15- "POT-Creation-Date :2025-11-17 16:39 +0000\n "
15+ "POT-Creation-Date :2025-11-19 17:32 +0000\n "
1616"PO-Revision-Date :2025-09-22 16:49+0000\n "
1717"Last-Translator :Rainer Terroso, 2025\n "
1818"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -428,6 +428,13 @@ msgid ""
428428"object's type might not be :class:`!CustomType`, because the object may be "
429429"an instance of a subclass."
430430msgstr ""
431+ "Esse método primeiro limpa a contagem de referências dos dois atributos "
432+ "Python. :c:func:`Py_XDECREF`lida corretamente com o caso em que seu "
433+ "argumento é ``NULL`` (o que pode acontecer aqui se ``tp_new`` falhou no meio "
434+ "do processo). Em seguida, ele chama o membro :c:member:`~PyTypeObject."
435+ "tp_free` do tipo do objeto (obtido por ``Py_TYPE(self)``) para liberar a "
436+ "memória do objeto. Observe que o tipo do objeto pode não ser :class:`!"
437+ "CustomType`, pois o objeto pode ser uma instância de uma subclasse."
431438
432439#: ../../extending/newtypes_tutorial.rst:286
433440msgid ""
@@ -443,10 +450,13 @@ msgid ""
443450"We want to make sure that the first and last names are initialized to empty "
444451"strings, so we provide a ``tp_new`` implementation::"
445452msgstr ""
453+ "Queremos nos certificar de que o primeiro e o último nome sejam "
454+ "inicializados como strings vazias, portanto, fornecemos uma implementação:: "
455+ "``tp_new`` "
446456
447457#: ../../extending/newtypes_tutorial.rst:316
448458msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::"
449- msgstr ""
459+ msgstr "e instale-o no membro:: :c:member:`~PyTypeObject.tp_new` "
450460
451461#: ../../extending/newtypes_tutorial.rst:320
452462msgid ""
@@ -458,6 +468,13 @@ msgid ""
458468"type above. In this case, we use the ``tp_new`` handler to initialize the "
459469"``first`` and ``last`` attributes to non-``NULL`` default values."
460470msgstr ""
471+ "O manipulador ``tp_new`` é responsável por criar (em oposição a inicializar) "
472+ "os objetos do tipo. Ele é exposto no Python como o método :meth:`~object."
473+ "__new__`. Não é obrigatório definir um membro ``tp_new`` e, de fato, muitos "
474+ "tipos de extensão simplesmente reutilizam :c:func:`PyType_GenericNew`, como "
475+ "na primeira versão do tipo :class:`!Custom` acima. Neste caso, usamos o "
476+ "manipulador ``tp_new`` para inicializar os atributos ``first`` e ``last`` "
477+ "com valores padrão que não sejam ``NULL``."
461478
462479#: ../../extending/newtypes_tutorial.rst:328
463480msgid ""
@@ -468,24 +485,37 @@ msgid ""
468485"often ignore the arguments, leaving the argument handling to initializer (a."
469486"k.a. ``tp_init`` in C or ``__init__`` in Python) methods."
470487msgstr ""
488+ "O ``tp_new`` recebe o tipo que está sendo instanciado (não necessariamente "
489+ "``CustomType``, caso uma subclasse esteja sendo instanciada) e quaisquer "
490+ "argumentos passados quando o tipo foi chamado, e deve devolver a instância "
491+ "criada. Manipuladores ``tp_new`` sempre aceitam argumentos posicionais e "
492+ "argumentos nomeados, mas frequentemente os ignoram, deixando o tratamento "
493+ "dos argumentos para os métodos inicializadores (ou seja, ``tp_init`` em C ou "
494+ "``__init__`` em Python)."
471495
472496#: ../../extending/newtypes_tutorial.rst:336
473497msgid ""
474498"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do "
475499"it itself."
476500msgstr ""
501+ "``tp_new`` não deve chamar ``tp_init`` explicitamente, pois o interpretador "
502+ "fará isso por conta própria."
477503
478504#: ../../extending/newtypes_tutorial.rst:339
479505msgid ""
480506"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` "
481507"slot to allocate memory::"
482508msgstr ""
509+ "A implementação de ``tp_new`` chama o slot :c:member:`~PyTypeObject."
510+ "tp_alloc` para alocar memória::"
483511
484512#: ../../extending/newtypes_tutorial.rst:344
485513msgid ""
486514"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject."
487515"tp_alloc` result against ``NULL`` before proceeding."
488516msgstr ""
517+ "Como a alocação de memória pode falhar, precisamos verificar se o resultado "
518+ "de :c:member:`~PyTypeObject.tp_alloc` é ``NULL`` antes de prosseguir."
489519
490520#: ../../extending/newtypes_tutorial.rst:348
491521msgid ""
@@ -494,6 +524,10 @@ msgid ""
494524"class, which is :class:`object` by default. Most types use the default "
495525"allocation strategy."
496526msgstr ""
527+ "Nós não preenchemos o campo :c:member:`~PyTypeObject.tp_alloc` por conta "
528+ "própria. Em vez disso, :c:func:`PyType_Ready` o preenche herdando-o da nossa "
529+ "classe base, que por padrão é :class:`object`. A maioria dos tipos usa a "
530+ "estratégia de alocação padrão."
497531
498532#: ../../extending/newtypes_tutorial.rst:354
499533msgid ""
@@ -513,10 +547,12 @@ msgid ""
513547"We also define an initialization function which accepts arguments to provide "
514548"initial values for our instance::"
515549msgstr ""
550+ "Também definimos uma função de inicialização que aceita argumentos para "
551+ "fornecer valores iniciais para nosso instância::"
516552
517553#: ../../extending/newtypes_tutorial.rst:393
518554msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::"
519- msgstr ""
555+ msgstr "preenchendo o campo :c:member:`~PyTypeObject.tp_init`:: "
520556
521557#: ../../extending/newtypes_tutorial.rst:397
522558msgid ""