@@ -218,12 +218,17 @@ msgid ""
218
218
"ABC, even if it would normally be one. If it returns :data:`!"
219
219
"NotImplemented`, the subclass check is continued with the usual mechanism."
220
220
msgstr ""
221
+ "Este método deve retornar ``True``, ``False`` ou :data:`NotImplemented`. Se "
222
+ "retornar ``True``, *subclass* é considerada uma subclasse desta ABC. Se "
223
+ "retornar ``False``, *subclass* não é considerada uma subclasse desta ABC, "
224
+ "mesmo que normalmente seria uma. Se retornar :data:`!NotImplemented`, a "
225
+ "verificação da subclasse é continuada com o mecanismo usual."
221
226
222
227
#: ../../library/abc.rst:114
223
228
msgid ""
224
229
"For a demonstration of these concepts, look at this example ABC definition::"
225
230
msgstr ""
226
- "Para uma demonstração destes conceitos, veja este exemplo de definição CBA ::"
231
+ "Para uma demonstração destes conceitos, veja este exemplo de definição ABC ::"
227
232
228
233
#: ../../library/abc.rst:116
229
234
msgid ""
@@ -254,6 +259,32 @@ msgid ""
254
259
"\n"
255
260
"MyIterable.register(Foo)"
256
261
msgstr ""
262
+ "class Foo:\n"
263
+ " def __getitem__(self, index):\n"
264
+ " ...\n"
265
+ " def __len__(self):\n"
266
+ " ...\n"
267
+ " def get_iterator(self):\n"
268
+ " return iter(self)\n"
269
+ "\n"
270
+ "class MyIterable(ABC):\n"
271
+ "\n"
272
+ " @abstractmethod\n"
273
+ " def __iter__(self):\n"
274
+ " while False:\n"
275
+ " yield None\n"
276
+ "\n"
277
+ " def get_iterator(self):\n"
278
+ " return self.__iter__()\n"
279
+ "\n"
280
+ " @classmethod\n"
281
+ " def __subclasshook__(cls, C):\n"
282
+ " if cls is MyIterable:\n"
283
+ " if any(\" __iter__\" in B.__dict__ for B in C.__mro__):\n"
284
+ " return True\n"
285
+ " return NotImplemented\n"
286
+ "\n"
287
+ "MyIterable.register(Foo)"
257
288
258
289
#: ../../library/abc.rst:143
259
290
msgid ""
@@ -263,6 +294,11 @@ msgid ""
263
294
"also part of the ``MyIterable`` abstract base class, but it does not have to "
264
295
"be overridden in non-abstract derived classes."
265
296
msgstr ""
297
+ "A ``MyIterable`` da ABC define o método iterável padrão, :meth:`~iterator."
298
+ "__iter__`, como um método abstrato. A implementação dada aqui pode ainda ser "
299
+ "chamada da subclasse. O método :meth:`!get_iterator` é também parte da "
300
+ "classe base abstrata ``MyIterable`` , mas não precisa ser substituído nas "
301
+ "classes derivadas não abstratas."
266
302
267
303
#: ../../library/abc.rst:149
268
304
msgid ""
@@ -271,6 +307,10 @@ msgid ""
271
307
"__dict__` (or in that of one of its base classes, accessed via the :attr:"
272
308
"`~type.__mro__` list) is considered a ``MyIterable`` too."
273
309
msgstr ""
310
+ "O método de classe :meth:`__subclasshook__` definido aqui diz que qualquer "
311
+ "classe que tenha um método :meth:`~iterator.__iter__` em seu :attr:`~object."
312
+ "__dict__` (ou no de uma de suas classes base, acessados via lista :attr:"
313
+ "`~type.__mro__`) é considerada uma ``MyIterable`` também."
274
314
275
315
#: ../../library/abc.rst:154
276
316
msgid ""
@@ -281,10 +321,16 @@ msgid ""
281
321
"``get_iterator`` available as a method of ``Foo``, so it is provided "
282
322
"separately."
283
323
msgstr ""
324
+ "Finalmente, a última linha faz de ``Foo`` uma subclasse virtual da "
325
+ "``MyIterable``, apesar de não definir um método :meth:`~iterator.__iter__` "
326
+ "(ela usa o protocolo iterável antigo, definido em termos de :meth:`~object."
327
+ "__len__` e :meth:`~object.__getitem__`). Note que isto não fará o "
328
+ "``get_iterator`` disponível como um método de ``Foo``, então ele é fornecido "
329
+ "separadamente."
284
330
285
331
#: ../../library/abc.rst:163
286
332
msgid "The :mod:`!abc` module also provides the following decorator:"
287
- msgstr ""
333
+ msgstr "O módulo :mod:`!abc` também fornece o seguinte decorador: "
288
334
289
335
#: ../../library/abc.rst:167
290
336
msgid "A decorator indicating abstract methods."
@@ -299,6 +345,13 @@ msgid ""
299
345
"the normal 'super' call mechanisms. :func:`!abstractmethod` may be used to "
300
346
"declare abstract methods for properties and descriptors."
301
347
msgstr ""
348
+ "Usar este decorador requer que a metaclasse da classe seja :class:`ABCMeta` "
349
+ "ou seja derivada desta. Uma classe que tem uma metaclasse derivada de :class:"
350
+ "`!ABCMeta` não pode ser instanciada, a menos que todos os seus métodos "
351
+ "abstratos e propriedades estejam substituídos. Os métodos abstratos podem "
352
+ "ser chamados usando qualquer um dos mecanismos normais de chamadas a "
353
+ "'super'. :func:`!abstractmethod` pode ser usado para declarar métodos "
354
+ "abstratos para propriedades e descritores."
302
355
303
356
#: ../../library/abc.rst:176
304
357
msgid ""
@@ -309,13 +362,22 @@ msgid ""
309
362
"\" virtual subclasses\" registered with the ABC's :meth:`~ABCMeta.register` "
310
363
"method are not affected."
311
364
msgstr ""
365
+ "Adicionar dinamicamente métodos abstratos a uma classe, ou tentar modificar "
366
+ "o status de abstração de um método ou classe uma vez que estejam criados, só "
367
+ "é suportado usando a função :func:`update_abstractmethods`. A :func:`!"
368
+ "abstractmethod` afeta apenas subclasses derivadas usando herança regular; "
369
+ "\" subclasses virtuais\" registradas com o método :meth:`~ABCMeta.register` "
370
+ "da ABC não são afetadas."
312
371
313
372
#: ../../library/abc.rst:183
314
373
msgid ""
315
374
"When :func:`!abstractmethod` is applied in combination with other method "
316
375
"descriptors, it should be applied as the innermost decorator, as shown in "
317
376
"the following usage examples::"
318
377
msgstr ""
378
+ "Quando :func:`!abstractmethod` é aplicado em combinação com outros "
379
+ "descritores de método, ele deve ser aplicado como o decorador mais interno, "
380
+ "como mostrado nos seguintes exemplos de uso::"
319
381
320
382
#: ../../library/abc.rst:187
321
383
msgid ""
@@ -349,6 +411,35 @@ msgid ""
349
411
" ...\n"
350
412
" x = property(_get_x, _set_x)"
351
413
msgstr ""
414
+ "class C(ABC):\n"
415
+ " @abstractmethod\n"
416
+ " def my_abstract_method(self, arg1):\n"
417
+ " ...\n"
418
+ " @classmethod\n"
419
+ " @abstractmethod\n"
420
+ " def my_abstract_classmethod(cls, arg2):\n"
421
+ " ...\n"
422
+ " @staticmethod\n"
423
+ " @abstractmethod\n"
424
+ " def my_abstract_staticmethod(arg3):\n"
425
+ " ...\n"
426
+ "\n"
427
+ " @property\n"
428
+ " @abstractmethod\n"
429
+ " def my_abstract_property(self):\n"
430
+ " ...\n"
431
+ " @my_abstract_property.setter\n"
432
+ " @abstractmethod\n"
433
+ " def my_abstract_property(self, val):\n"
434
+ " ...\n"
435
+ "\n"
436
+ " @abstractmethod\n"
437
+ " def _get_x(self):\n"
438
+ " ...\n"
439
+ " @abstractmethod\n"
440
+ " def _set_x(self, val):\n"
441
+ " ...\n"
442
+ " x = property(_get_x, _set_x)"
352
443
353
444
#: ../../library/abc.rst:217
354
445
msgid ""
@@ -358,6 +449,11 @@ msgid ""
358
449
"of the methods used to compose the descriptor are abstract. For example, "
359
450
"Python's built-in :class:`property` does the equivalent of::"
360
451
msgstr ""
452
+ "Para que interopere corretamente com o maquinário da classe base abstrata, o "
453
+ "descritor precisa identificar-se como abstrato usando :attr:`!"
454
+ "__isabstractmethod__`. No geral, este atributo deve ser ``True`` se algum "
455
+ "dos métodos usados para compor o descritor for abstrato. Por exemplo, a :"
456
+ "class:`property` embutida do Python faz o equivalente a::"
361
457
362
458
#: ../../library/abc.rst:223
363
459
msgid ""
@@ -368,6 +464,12 @@ msgid ""
368
464
" return any(getattr(f, '__isabstractmethod__', False) for\n"
369
465
" f in (self._fget, self._fset, self._fdel))"
370
466
msgstr ""
467
+ "class Descriptor:\n"
468
+ " ...\n"
469
+ " @property\n"
470
+ " def __isabstractmethod__(self):\n"
471
+ " return any(getattr(f, '__isabstractmethod__', False) for\n"
472
+ " f in (self._fget, self._fset, self._fdel))"
371
473
372
474
#: ../../library/abc.rst:232
373
475
msgid ""
@@ -384,7 +486,7 @@ msgstr ""
384
486
385
487
#: ../../library/abc.rst:239
386
488
msgid "The :mod:`!abc` module also supports the following legacy decorators:"
387
- msgstr ""
489
+ msgstr "O módulo :mod:`!abc` também suporta os seguintes decoradores herdados: "
388
490
389
491
#: ../../library/abc.rst:244
390
492
msgid ""
@@ -419,6 +521,11 @@ msgid ""
419
521
" def my_abstract_classmethod(cls, arg):\n"
420
522
" ..."
421
523
msgstr ""
524
+ "class C(ABC):\n"
525
+ " @classmethod\n"
526
+ " @abstractmethod\n"
527
+ " def my_abstract_classmethod(cls, arg):\n"
528
+ " ..."
422
529
423
530
#: ../../library/abc.rst:265
424
531
msgid ""
@@ -453,6 +560,11 @@ msgid ""
453
560
" def my_abstract_staticmethod(arg):\n"
454
561
" ..."
455
562
msgstr ""
563
+ "class C(ABC):\n"
564
+ " @staticmethod\n"
565
+ " @abstractmethod\n"
566
+ " def my_abstract_staticmethod(arg):\n"
567
+ " ..."
456
568
457
569
#: ../../library/abc.rst:285
458
570
msgid ""
@@ -488,6 +600,11 @@ msgid ""
488
600
" def my_abstract_property(self):\n"
489
601
" ..."
490
602
msgstr ""
603
+ "class C(ABC):\n"
604
+ " @property\n"
605
+ " @abstractmethod\n"
606
+ " def my_abstract_property(self):\n"
607
+ " ..."
491
608
492
609
#: ../../library/abc.rst:303
493
610
msgid ""
@@ -511,6 +628,15 @@ msgid ""
511
628
" def x(self, val):\n"
512
629
" ..."
513
630
msgstr ""
631
+ "class C(ABC):\n"
632
+ " @property\n"
633
+ " def x(self):\n"
634
+ " ...\n"
635
+ "\n"
636
+ " @x.setter\n"
637
+ " @abstractmethod\n"
638
+ " def x(self, val):\n"
639
+ " ..."
514
640
515
641
#: ../../library/abc.rst:317
516
642
msgid ""
@@ -528,10 +654,14 @@ msgid ""
528
654
" def x(self, val):\n"
529
655
" ..."
530
656
msgstr ""
657
+ "class D(C):\n"
658
+ " @C.x.setter\n"
659
+ " def x(self, val):\n"
660
+ " ..."
531
661
532
662
#: ../../library/abc.rst:326
533
663
msgid "The :mod:`!abc` module also provides the following functions:"
534
- msgstr ""
664
+ msgstr "O módulo :mod:`!abc` também fornece as seguintes funções: "
535
665
536
666
#: ../../library/abc.rst:330
537
667
msgid "Returns the current abstract base class cache token."
0 commit comments