Skip to content

Commit 679c6ef

Browse files
committed
cap13: duck typing -> tipagem pato
1 parent 4666d16 commit 679c6ef

File tree

7 files changed

+72
-67
lines changed

7 files changed

+72
-67
lines changed
19.5 KB
Binary file not shown.
98.8 KB
Loading

images/mapa-da-tipagem.odg

21.6 KB
Binary file not shown.

images/mapa-da-tipagem.png

111 KB
Loading

online/cap10.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ tornando alguns dos exemplos mais próximos do modo como escreveríamos em
617617
Python.
618618

619619
Para um olhar moderno sobre padrões, do ponto de vista de uma linguagem dinâmica
620-
com _duck typing_ e funções de primeira classe, _Design Patterns in Ruby_
620+
com tipagem pato (_duck typing_) e funções de primeira classe, _Design Patterns in Ruby_
621621
("Padrões de Projetos em Ruby") de Russ Olsen (Addison-Wesley) traz muitas
622622
ideias aplicáveis também ao Python. A despeito de suas muitas diferenças
623623
sintáticas, no nível semântico Python e Ruby estão mais próximos entre si que de

online/cap12.adoc

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ como forma de substituir as propriedades apenas para leitura
2727
que usamos no `Vector2d`—apesar disso não ser comum em sequências.
2828

2929
Além disso, teremos uma discussão conceitual sobre a ideia de protocolos como interfaces informais.
30-
Vamos discutir a relação entre protocolos e _duck typing_,
30+
Vamos discutir a relação entre protocolos e a tipagem pato (_duck typing_),
3131
e as implicações práticas disso na criação de seus próprios tipos.
3232

3333
=== Novidades neste capítulo
@@ -195,7 +195,7 @@ um exemplo independente de uma classe que implementa o protocolo de sequência.
195195
startref="VCM2d12")))((("", startref="SSM2d12")))
196196

197197
[[protocol_duck_sec]]
198-
=== Protocolos e o _duck typing_
198+
=== Protocolos e a tipagem pato
199199

200200
Desde((("Vector class, multidimensional",
201201
"protocols and duck typing")))((("sequences, special methods for",
@@ -243,7 +243,8 @@ não é preciso implemtar `+__len__+`.
243243
[TIP]
244244
====
245245
Com((("protocol classes")))((("protocols", "static protocols"))) a
246-
https://fpy.li/pep544[_PEP 544—Protocols: Structural subtyping (static duck typing)_ (Protocolos:sub-tipagem estrutural (duck typing estático))],
246+
https://fpy.li/pep544[_PEP 544—Protocols: Structural subtyping (static duck typing)_]
247+
(Protocolos: sub-tipagem estrutural (tipagem pato estática))],
247248
o Python 3.8 suporta _classes protocolo_: subclasses de `typing.Protocol`,
248249
que estudamos na <<protocols_in_fn_sec>>.
249250
Esse novo uso da palavra protocolo no Python tem um significado parecido, mas não idêntico.
@@ -1089,7 +1090,7 @@ uso de uma assinatura de construtor diferente, aceitando um único argumento
10891090
iterável, como fazem todos os tipos embutidos de sequências. O fato de `Vector`
10901091
se comportar como uma sequência apenas por implementar `+__getitem__+` e
10911092
`+__len__+` deu margem a uma discussão sobre protocolos, as interfaces informais
1092-
usadas em linguagens com _duck typing_.
1093+
usadas em linguagens com tipagem pato.
10931094

10941095
A seguir vimos como a sintaxe `my_seq[a:b:c]` funciona por baixo dos panos,
10951096
criando um objeto `slice(a, b, c)` e entregando esse objeto a `+__getitem__+`.
@@ -1231,11 +1232,11 @@ onde esses conceitos são o assunto principal.
12311232
12321233
12331234
[role="soapbox-title"]
1234-
**As origens do _duck typing_**
1235+
**De onde vieram os patos**
12351236
12361237
Creio((("Soapbox sidebars", "duck typing")))((("duck typing"))) que a comunidade
1237-
Ruby, mais que qualquer outra, ajudou a popularizar o termo "duck typing"
1238-
(_tipagem pato_), ao pregar para as massas de usuários de Java. Mas a expressão
1238+
Ruby, mais que qualquer outra, ajudou a popularizar o termo _duck typing_,
1239+
ao pregar para as massas de convertidos do Java. Mas a expressão
12391240
já era usada nas discussões de Python muito antes de Ruby ou Python se
12401241
tornarem "populares". De acordo com a Wikipedia, um dos primeiros exemplos de
12411242
uso da analogia do pato, no contexto da programação orientada a objetos, foi uma

online/cap13.adoc

Lines changed: 63 additions & 59 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)