@@ -11,7 +11,7 @@ msgid ""
11
11
msgstr ""
12
12
"Project-Id-Version : Python 3.13\n "
13
13
"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 "
15
15
"PO-Revision-Date : 2025-05-08 05:09+0000\n "
16
16
"
Last-Translator :
Rafael Fontenelle <[email protected] >, 2025\n "
17
17
"Language-Team : Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -56,6 +56,15 @@ msgid ""
56
56
"an object, a method called, or it is multiplied by another object. These C "
57
57
"functions are called \" type methods\" ."
58
58
msgstr ""
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\" ."
59
68
60
69
#: ../../extending/newtypes_tutorial.rst:35
61
70
msgid ""
@@ -71,6 +80,9 @@ msgid ""
71
80
"but complete, module that defines a new type named :class:`!Custom` inside a "
72
81
"C extension module :mod:`!custom`:"
73
82
msgstr ""
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`:"
74
86
75
87
#: ../../extending/newtypes_tutorial.rst:43
76
88
msgid ""
@@ -79,6 +91,10 @@ msgid ""
79
91
"allows defining heap-allocated extension types using the :c:func:"
80
92
"`PyType_FromSpec` function, which isn't covered in this tutorial."
81
93
msgstr ""
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."
82
98
83
99
#: ../../extending/newtypes_tutorial.rst:48
84
100
msgid ""
@@ -137,6 +153,60 @@ msgid ""
137
153
" return PyModuleDef_Init(&custom_module);\n"
138
154
"}\n"
139
155
msgstr ""
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"
140
210
141
211
#: ../../extending/newtypes_tutorial.rst:50
142
212
msgid ""
0 commit comments