You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -990,7 +989,7 @@ Mas mesmo que tenha, as subclasses ainda são obrigadas a sobrescrevê-lo,
990
989
mas poderão invocar o método abstrato com `super()`,
991
990
acrescentando funcionalidade em vez de implementar do zero.
992
991
Veja os detalhes do uso de `@abstractmethod` na
993
-
https://docs.python.org/pt-br/3/library/abc.html[documentação do módulo `abc`].
992
+
https://fpy.li/6r[documentação do módulo `abc`].
994
993
====
995
994
996
995
O código do o método `.inspect()` é simplório, mas mostra que podemos confiar em
@@ -1108,7 +1107,7 @@ A ordem dos decoradores de função empilhados importa, e no caso de `@abstractm
1108
1107
[quote]
1109
1108
____
1110
1109
Quando `@abstractmethod` é aplicado em combinação com outros descritores de método,
1111
-
ele deve ser aplicado como o decorador mais interno...footnote:[O verbete https://docs.python.org/pt-br/dev/library/abc.html#abc.abstractmethod[`@abc.abstractmethod`] na https://docs.python.org/pt-br/dev/library/abc.html[documentação do módulo `abc`].]
1110
+
ele deve ser aplicado como o decorador mais interno...footnote:[O verbete https://fpy.li/6s[`@abc.abstractmethod`] na https://docs.python.org/pt-br/dev/library/abc.html[documentação do módulo `abc`].]
1112
1111
____
1113
1112
1114
1113
Em outras palavras, nenhum outro decorador pode aparecer entre `@abstractmethod` e a instrução `def`.
<1> Essa classe `BingoCage` estende `Tombola` explicitamente.
1136
1135
<2> Finja que vamos usar isso para um jogo online. `random.SystemRandom` implementa
1137
-
a API `random` sobre a função `os.urandom(…)`, que fornece bytes aleatórios "adequados para uso em criptografia", segundo https://docs.python.org/pt-br/3/library/os.html#os.urandom[a documentação do módulo `os`].
1136
+
a API `random` sobre a função `os.urandom(…)`, que fornece bytes aleatórios "adequados para uso em criptografia", segundo https://fpy.li/6t[a documentação do módulo `os`].
1138
1137
<3> Delega o carregamento inicial para o método `.load()`
1139
1138
<4> Em vez da função `random.shuffle()` normal, usamos o método `.shuffle()` de nossa instância de `SystemRandom`.
1140
1139
<5> `pick` é implementado como em <<ex_bingo_callable>>.
<3> `TomboList` herda seu comportamento booleano de `list`, e isso retorna `True` se a lista não estiver vazia.
1224
1223
<4> Nosso `pick` chama `self.pop`, herdado de `list`, passando um índice aleatório para um item.
1225
1224
<5> `TomboList.load` é o mesmo que `list.extend`.
1226
-
<6> `loaded` delega para `bool`.footnote:[O truque usado com `load()` não funciona com `loaded()`, pois o tipo `list` não implementa `+__bool__+`, o método que eu teria de vincular a `loaded`. O `bool()` nativo não precisa de `+__bool__+` para funcionar, porque pode também usar `+__len__+`. Veja https://docs.python.org/pt-br/3/library/stdtypes.html#truth["4.1. Teste do Valor Verdade"] no capítulo "Tipos Embutidos" da documentação de Python.]
1225
+
<6> `loaded` delega para `bool`.footnote:[O truque usado com `load()` não funciona com `loaded()`, pois o tipo `list` não implementa `+__bool__+`, o método que eu teria de vincular a `loaded`. O `bool()` nativo não precisa de `+__bool__+` para funcionar, porque pode também usar `+__len__+`. Veja https://fpy.li/2g["4.1. Teste do Valor Verdade"] no capítulo "Tipos Embutidos" da documentação de Python.]
1227
1226
<7> É sempre possível chamar `register` dessa forma, e é útil fazer assim quando você precisa registrar uma classe que você não mantém, mas que implementa a interface.
1228
1227
1229
1228
Note que, por causa do registro,
@@ -1847,7 +1846,7 @@ Isso torna mais fácil criar novos tipos para chamar aquela função,
1847
1846
bom para a extensibilidade e para testes com simulações ou protótipos.
1848
1847
1849
1848
Ambas as práticas, protocolos estreitos e protocolos em código cliente, evitam um acoplamento muito firme, em acordo com o
1850
-
https://pt.wikipedia.org/wiki/Princ%C3%ADpio_da_segrega%C3%A7%C3%A3o_de_interface[Princípio da Segregação de Interface],
1849
+
https://fpy.li/6v[Princípio da Segregação de Interface],
1851
1850
que podemos resumir como "Clientes não devem ser forçados a depender de interfaces que não usam."
1852
1851
1853
1852
A página https://fpy.li/13-35["Contributing to typeshed"] (EN)
0 commit comments