@@ -11,7 +11,7 @@ msgid ""
1111msgstr ""
1212"Project-Id-Version : Python 3.13\n "
1313"Report-Msgid-Bugs-To : \n "
14- "POT-Creation-Date : 2025-05-30 14:58 +0000\n "
14+ "POT-Creation-Date : 2025-06-13 15:01 +0000\n "
1515"PO-Revision-Date : 2025-05-08 05:09+0000\n "
1616"Last-Translator : Rafael Fontenelle <rffontenelle@gmail.com>, 2025\n "
1717"Language-Team : Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -56,6 +56,15 @@ msgid ""
5656"an object, a method called, or it is multiplied by another object. These C "
5757"functions are called \" type methods\" ."
5858msgstr ""
59+ "O tempo de execução do :term:`CPython` considera todos os objetos Python "
60+ "como variáveis do tipo :c:expr:`PyObject*`, que serve como um \" tipo base\" "
61+ "para todos os objetos Python. A própria estrutura :c:type:`PyObject` contém "
62+ "apenas a :term:`contagem de referências` do objeto e um ponteiro para o "
63+ "\" objeto de tipo\" do objeto. É aqui que ocorre a ação; o objeto de tipo "
64+ "determina quais funções (C) são chamadas pelo interpretador quando, por "
65+ "exemplo, um atributo é consultado em um objeto, um método é chamado ou é "
66+ "multiplicado por outro objeto. Essas funções C são chamadas de \" métodos de "
67+ "tipo\" ."
5968
6069#: ../../extending/newtypes_tutorial.rst:35
6170msgid ""
@@ -71,6 +80,9 @@ msgid ""
7180"but complete, module that defines a new type named :class:`!Custom` inside a "
7281"C extension module :mod:`!custom`:"
7382msgstr ""
83+ "Esse tipo de coisa só pode ser explicado por exemplo, então aqui está um "
84+ "módulo mínimo, mas completo, que define um novo tipo chamado :class:`!"
85+ "Custom` dentro de um módulo de extensão C :mod:`!custom`:"
7486
7587#: ../../extending/newtypes_tutorial.rst:43
7688msgid ""
@@ -79,6 +91,10 @@ msgid ""
7991"allows defining heap-allocated extension types using the :c:func:"
8092"`PyType_FromSpec` function, which isn't covered in this tutorial."
8193msgstr ""
94+ "O que estamos mostrando aqui é a maneira tradicional de definir tipos de "
95+ "extensão *estáticos*. Deve ser adequada para a maioria dos usos. A API C "
96+ "também permite definir tipos de extensão alocados em heap usando a função :c:"
97+ "func:`PyType_FromSpec`, que não é abordada neste tutorial."
8298
8399#: ../../extending/newtypes_tutorial.rst:48
84100msgid ""
@@ -137,6 +153,60 @@ msgid ""
137153" return PyModuleDef_Init(&custom_module);\n"
138154"}\n"
139155msgstr ""
156+ "#define PY_SSIZE_T_CLEAN\n"
157+ "#include <Python.h>\n"
158+ "\n"
159+ "typedef struct {\n"
160+ " PyObject_HEAD\n"
161+ " /* Campos específico do tipo vão aqui. */\n"
162+ "} CustomObject;\n"
163+ "\n"
164+ "static PyTypeObject CustomType = {\n"
165+ " .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n"
166+ " .tp_name = \" custom.Custom\" ,\n"
167+ " .tp_doc = PyDoc_STR(\" Custom objects\" ),\n"
168+ " .tp_basicsize = sizeof(CustomObject),\n"
169+ " .tp_itemsize = 0,\n"
170+ " .tp_flags = Py_TPFLAGS_DEFAULT,\n"
171+ " .tp_new = PyType_GenericNew,\n"
172+ "};\n"
173+ "\n"
174+ "static int\n"
175+ "custom_module_exec(PyObject *m)\n"
176+ "{\n"
177+ " if (PyType_Ready(&CustomType) < 0) {\n"
178+ " return -1;\n"
179+ " }\n"
180+ "\n"
181+ " if (PyModule_AddObjectRef(m, \" Custom\" , (PyObject *) &CustomType) < 0) "
182+ "{\n"
183+ " return -1;\n"
184+ " }\n"
185+ "\n"
186+ " return 0;\n"
187+ "}\n"
188+ "\n"
189+ "static PyModuleDef_Slot custom_module_slots[] = {\n"
190+ " {Py_mod_exec, custom_module_exec},\n"
191+ " // Só use isso quando estiver usando tipos estáticos\n"
192+ " {Py_mod_multiple_interpreters, "
193+ "Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},\n"
194+ " {0, NULL}\n"
195+ "};\n"
196+ "\n"
197+ "static PyModuleDef custom_module = {\n"
198+ " .m_base = PyModuleDef_HEAD_INIT,\n"
199+ " .m_name = \" custom\" ,\n"
200+ " .m_doc = \" Example module that creates an extension type.\" ,\n"
201+ " .m_size = 0,\n"
202+ " .m_slots = custom_module_slots,\n"
203+ "};\n"
204+ "\n"
205+ "PyMODINIT_FUNC\n"
206+ "PyInit_custom(void)\n"
207+ "{\n"
208+ " return PyModuleDef_Init(&custom_module);\n"
209+ "}\n"
140210
141211#: ../../extending/newtypes_tutorial.rst:50
142212msgid ""
0 commit comments