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: Prefacio.adoc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,11 +80,11 @@ Recomendo((("Python", "approach to learning", id="Papproach00"))) que todos leia
80
80
Após a leitura do capítulo "O modelo de dados do Python",
81
81
o público principal deste livro não terá problema em
82
82
pular diretamente para qualquer outra parte,
83
-
mas muitas vezes assumo que você leu os capítulos precendentes de cada parte específica.
83
+
mas muitas vezes assumo que você leu os capítulos precedentes de cada parte específica.
84
84
Pense nas partes <<data_structures_part>> até a <<metaprog_part>> como cinco livros dentro do livro.
85
85
86
86
Tentei enfatizar o uso de classes e módulos que já existem antes de discutir como criar seus próprios.
87
-
Por exemplo, na Parte <<data_structures_part>>,
87
+
Por exemplo, na <<data_structures_part>>,
88
88
o <<sequences>> trata dos tipos de sequências que estão prontas para serem usadas,
89
89
incluindo algumas que não recebem muita atenção, como `collections.deque`.
90
90
Criar sequências definidas pelo usuário só é discutido na <<classes_protocols_part>>, onde também vemos como usar as classes base abstratas (ABCs) de `collections.abc`.
Copy file name to clipboardExpand all lines: capitulos/cap01.adoc
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -314,7 +314,7 @@ Na próxima seção veremos alguns dos usos mais importantes dos métodos especi
314
314
==== Emulando tipos numéricos
315
315
316
316
Vários((("special methods", "emulating numeric types", id="SMnumeric01")))((("numeric types", "emulating using special methods", id="NTemul01"))) métodos especiais permitem que objetos criados pelo usuário respondam a operadores como `+`.
317
-
Vamos tratar disso com mais detalhes no capítulo <<operator_overloading>>.
317
+
Vamos tratar disso com mais detalhes no <<operator_overloading>>.
318
318
Aqui nosso objetivo é continuar ilustrando o uso dos métodos especiais, através de outro exemplo simples.
319
319
320
320
Vamos((("vectors", "representing two-dimensional", id="Vtwo01"))) implementar uma classe para representar vetores bi-dimensionais—isto é, vetores euclidianos como aqueles usados em matemática e física (veja a <<vectors_fig>>).
@@ -382,13 +382,13 @@ para demonstrar o uso básico de `+__add__+` e `+__mul__+`.
382
382
No dois casos, os métodos criam e devolvem uma nova instância de `Vector`,
383
383
e não modificam nenhum dos operandos: `self` e `other` são apenas lidos.
384
384
Esse é o comportamento esperado de operadores infixos: criar novos objetos e não tocar em seus operandos.
385
-
Vou falar muito mais sobre esse tópico no capítulo <<operator_overloading>>.
385
+
Vou falar muito mais sobre esse tópico no <<operator_overloading>>.
386
386
387
387
[WARNING]
388
388
====
389
389
Da forma como está implementado, o <<ex_vector2d>> permite multiplicar um `Vector` por um número, mas não um número por um `Vector`,
390
390
violando a propriedade comutativa da multiplicação escalar.
391
-
Vamos consertar isso com o método especial `+__rmul__+` no capítulo <<operator_overloading>>.
391
+
Vamos consertar isso com o método especial `+__rmul__+` no <<operator_overloading>>.
392
392
====
393
393
394
394
Nas seções seguintes vamos discutir os outros métodos especiais em `Vector`.((("", startref="SMnumeric01")))((("", startref="NTemul01")))((("", startref="Vtwo01")))
@@ -472,7 +472,7 @@ Feel free to move the large [[collection_uml]] figure if needed.
472
472
[[collection_api]]
473
473
==== A API de Collection
474
474
475
-
A <<collection_uml>> documenta((("special methods", "Collection API", id="SMcollection01")))((("Collection API", id="Cspeical01")))((("ABCs (abstract base classes)", "UML class diagrams", id="abcs01")))((("UML class diagrams", "fundamental collection types"))) as interfaces dos tipos de coleções essenciais na linguagem. Todas as classes no diagrama são ABCs—_classes base abstratas_ (_ABC é a sigla para a mesma expressão em inglês, Abstract Base Classes_). As ABCs e o módulo `collections.abc` são tratados no capítulo <<ifaces_prot_abc>>.
475
+
A <<collection_uml>> documenta((("special methods", "Collection API", id="SMcollection01")))((("Collection API", id="Cspeical01")))((("ABCs (abstract base classes)", "UML class diagrams", id="abcs01")))((("UML class diagrams", "fundamental collection types"))) as interfaces dos tipos de coleções essenciais na linguagem. Todas as classes no diagrama são ABCs—_classes base abstratas_ (_ABC é a sigla para a mesma expressão em inglês, Abstract Base Classes_). As ABCs e o módulo `collections.abc` são tratados no <<ifaces_prot_abc>>.
476
476
O objetivo dessa pequena seção é dar uma visão panorâmica das interfaces das coleções mais importantes do Python, mostrando como elas são criadas a partir de métodos especiais.
477
477
478
478
[role="width-70"]
@@ -551,7 +551,7 @@ I tried to use keep-together in <<special_operators_tbl>> but it was rendering a
551
551
Operadores infixos e numéricos são suportados pelos métodos especiais listados na
Aqui os nomes mais recentes são `+__matmul__+`, `+__rmatmul__+`, e `+__imatmul__+`, adicionados no Python 3.5 para suportar o uso de `@` como um operador infixo de multiplicação de matrizes, como veremos no capítulo <<operator_overloading>>.((("special methods", "special method names and symbols for operators")))
554
+
Aqui os nomes mais recentes são `+__matmul__+`, `+__rmatmul__+`, e `+__imatmul__+`, adicionados no Python 3.5 para suportar o uso de `@` como um operador infixo de multiplicação de matrizes, como veremos no <<operator_overloading>>.((("special methods", "special method names and symbols for operators")))
555
555
556
556
[[special_operators_tbl]]
557
557
.Nomes e símbolos de métodos especiais para operadores
@@ -573,7 +573,7 @@ Aqui os nomes mais recentes são `+__matmul__+`, `+__rmatmul__+`, e `+__imatmul_
573
573
O Python invoca um método especial de operador reverso no segundo argumento quando o método especial correspondente não pode ser usado no primeiro operando.
574
574
Atribuições aumentadas são atalho combinando um operador infixo com uma atribuição de variável, por exemplo `a += b`.
575
575
576
-
O capítulo <<operator_overloading>> explica em detalhes os operadores reversos e a atribuição aumentada.((("", startref="PDMspmtov01")))
576
+
O <<operator_overloading>> explica em detalhes os operadores reversos e a atribuição aumentada.((("", startref="PDMspmtov01")))
577
577
====
578
578
579
579
@@ -606,13 +606,13 @@ Uma exigência básica para um objeto Python é fornecer strings representando a
606
606
607
607
Emular sequências, como mostrado com o exemplo do `FrenchDeck`, é um dos usos mais comuns dos métodos especiais.
608
608
Por exemplo, bibliotecas de banco de dados frequentemente devolvem resultados de consultas na forma de coleções similares a sequências.
609
-
Tirar o máximo proveito dos tipos de sequências existentes é o assunto do capítulo <<sequences>>.
610
-
Como implementar suas próprias sequências será visto na seção <<user_defined_sequences>>,
609
+
Tirar o máximo proveito dos tipos de sequências existentes é o assunto do <<sequences>>.
610
+
Como implementar suas próprias sequências será visto na <<user_defined_sequences>>,
611
611
onde criaremos uma extensão multidimensional da classe `Vector`.
612
612
613
613
Graças à sobrecarga de operadores, o Python oferece uma rica seleção de tipos numéricos, desde os tipos embutidos até `decimal.Decimal` e `fractions.Fraction`,
614
614
todos eles suportando operadores aritméticos infixos.
615
-
As bibliotecas de ciência de dados _NumPy_ suportam operadores infixos com matrizes e tensores. A implementação de operadores—incluindo operadores reversos e atribuição aumentada—será vista no capítulo <<operator_overloading>>, usando melhorias do exemplo `Vector`.
615
+
As bibliotecas de ciência de dados _NumPy_ suportam operadores infixos com matrizes e tensores. A implementação de operadores—incluindo operadores reversos e atribuição aumentada—será vista no <<operator_overloading>>, usando melhorias do exemplo `Vector`.
616
616
617
617
Também veremos o uso e a implementação da maioria dos outros métodos especiais do Modelo de Dados do Python ao longo deste livro.
0 commit comments