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
Copy file name to clipboardExpand all lines: capitulos/cap01.adoc
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@
17
17
// ____
18
18
++++
19
19
<blockquote>
20
-
<p>O senso estético de Guido para o design de linguagens é incrível. Conheci muitos projetistas capazes de criar linguagens teoricamente lindas, que ninguém jamais usaria. Mas Guido é uma daquelas raras pessoas capaz criar uma linguagem só um pouco menos teoricamente linda que, por isso mesmo, é uma delícia para programar.</p>
20
+
<p>O senso estético de Guido para o design de linguagens é incrível. Conheci muitos projetistas capazes de criar linguagens teoricamente lindas, que ninguém jamais usaria. Mas Guido é uma daquelas raras pessoas capaz de criar uma linguagem só um pouco menos teoricamente linda que, por isso mesmo, é uma delícia para programar.</p>
21
21
22
22
<p data-type="attribution">Jim Hugunin, criador do Jython, co-criador do AspectJ, arquiteto do DLR (<em>Dynamic Language Runtime</em>) do .Net. <span data-type="footnote"><a href="https://fpy.li/1-1"><em>"Story of Jython" (_A História do Jython_)</em></a> (EN), escrito como prefácio ao <a class="orm:hideurl" href="https://fpy.li/1-2"><em>Jython Essentials</em></a> (EN), de Samuele Pedroni e Noel Rappin (O'Reilly).</span></p>
23
23
</blockquote>
@@ -283,7 +283,7 @@ de uma linha. Você consegue imaginar como ele seria implementado?
283
283
284
284
A((("Python Data Model", "using special methods", id="PDMspecmeth01")))((("special methods", "calling"))) primeira coisa para se saber sobre os métodos especiais é que eles foram feitos para serem chamados pelo interpretador Python, e não por você.
285
285
Você não escreve `+my_object.__len__()+`.
286
-
Escreve `len(my_object)` e, se `my_object` é uma instância de de uma classe definida pelo usuário, então o Python chama o método `+__len__+` que você implementou.
286
+
Escreve `len(my_object)` e, se `my_object` é uma instância de uma classe definida pelo usuário, então o Python chama o método `+__len__+` que você implementou.
287
287
288
288
Mas o interpretador pega um atalho quando está lidando com um tipo embutido como `list`, `str`, `bytearray`, ou extensões como os arrays do NumPy.
289
289
As coleções de tamanho variável do Python escritas em C incluem uma structfootnote:[Uma struct do C é um tipo de registro com campos nomeados.]
@@ -500,7 +500,7 @@ Apenas `Sequence` é `Reversible`, porque sequências suportam o ordenamento arb
500
500
501
501
[NOTE]
502
502
====
503
-
Desde((("keys", "preserving key insertion order"))) o Python 3.7, o tipo `dict` é oficialmente "ordenado", mas isso só que dizer que a ordem de inserção das chaves é preservada.
503
+
Desde((("keys", "preserving key insertion order"))) o Python 3.7, o tipo `dict` é oficialmente "ordenado", mas isso só quer dizer que a ordem de inserção das chaves é preservada.
504
504
Você não pode rearranjar as chaves em um `dict` da forma que quiser.
505
505
====
506
506
@@ -513,7 +513,7 @@ Os próximos dois capítulos vão tratar em detalhes das sequências, mapeamento
513
513
Agora vamos considerar as duas principais categorias dos métodos especiais definidos no Modelo de Dados do Python.((("", startref="PDMspecmeth01")))((("", startref="SMcollection01")))((("", startref="Cspeical01")))((("", startref="abcs01")))
514
514
515
515
[[overview_special_methods]]
516
-
=== Visão geral dos, métodos especiais
516
+
=== Visão geral dos métodos especiais
517
517
518
518
O((("Python Data Model", "special methods overview", id="PDMspmtov01")))((("special methods", "special method names (operators excluded)"))) https://docs.python.org/pt-br/3/reference/datamodel.html[capítulo "Modelo de Dados"] de _A Referência da Linguagem Python_ lista mais de 80 nomes de métodos especiais.
519
519
Mais da metade deles implementa operadores aritméticos, bit a bit, ou de comparação.
@@ -577,7 +577,7 @@ O capítulo <<operator_overloading>> explica em detalhes os operadores reversos
577
577
====
578
578
579
579
580
-
=== Porque len não é um método?
580
+
=== Por que len não é um método?
581
581
582
582
Em 2013, fiz((("Python Data Model", "making len work with custom objects")))((("__len__"))) essa pergunta a Raymond Hettinger, um dos desenvolvedores principais do Python, e o núcleo de sua resposta era uma citação do https://fpy.li/1-8["The Zen of Python" (_O Zen do Python_)] (EN): "a praticidade vence a pureza."
583
583
Em <<how_special_used>>, descrevi como `len(x)` roda muito rápido quando `x` é uma instância de um tipo embutido.
0 commit comments