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: online/cap12.adoc
+22-24Lines changed: 22 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,12 +117,11 @@ Quando um `Vector` tem mais de seis componentes, a string produzida por `repr()`
117
117
`\...`, como visto na última linha do <<ex_vector_demo>>. Isso é fundamental para qualquer tipo de coleção que possa conter um número grande de itens, pois `repr` é usado na depuração—e você não quer que um único objeto grande ocupe milhares de linhas em seu console ou arquivo de log. Use o módulo `reprlib` para produzir representações de tamanho limitado, como no <<ex_vector_v1>>. O módulo `reprlib` se chamava `repr` no Python 2.7.
118
118
====
119
119
120
-
O <<ex_vector_v1>> lista a implementação de nossa primeira versão de `Vector`
121
-
(este exemplo usa como base o código mostrado no <<ex_vector2d_v0>> e
122
-
<<ex_vector2d_v1>> do <<ch_pythonic_obj>>).
120
+
O <<ex_vector_v1>> é a primeira versão de `Vector`
121
+
baseada no <<ex_vector2d_v0>> e <<ex_vector2d_v1>> do <<ch_pythonic_obj>>.
123
122
124
123
[[ex_vector_v1]]
125
-
.vector_v1.py: derived from vector2d_v1.py
124
+
.vector_v1.py: baseado em vector2d_v1.py
126
125
====
127
126
[source, python]
128
127
----
@@ -161,8 +160,8 @@ dentro de um `Vector` é um detalhe de implementação. Como essas chamadas ao
161
160
construtor criam objetos `Vector` idênticos, preferi a sintaxe mais simples,
162
161
usando um argumento `list`.
163
162
164
-
Ao escrever o `+__repr__+`, eu poderia construir uma string para exibição
165
-
simplificada de `components` com este código:
163
+
Ao escrever o `+__repr__+`, eu poderia construir uma string para exibir
164
+
`components` com este código:
166
165
`reprlib.repr(list(self._components))`.
167
166
Mas isto teria um custo adicional, pois eu estaria copiando cada item de `self._components` para uma
168
167
`list` só para usar a `list` no `repr`. Em vez disso, decidi aplicar
@@ -240,24 +239,25 @@ se exatamente como a classe será utilizada.
240
239
Por exemplo, apenas `+__getitem__+` é necessário para suportar iteração;
241
240
não é preciso implemtar `+__len__+`.
242
241
243
-
[role="man-height4"]
242
+
244
243
[TIP]
245
244
====
245
+
246
246
Com((("protocol classes")))((("protocols", "static protocols"))) a
Supondo uma sequência de tamanho `len`, calcula os índices `start` (_início_) e `stop` (_fim_), e a extensão do `stride` (_passo_) da fatia estendida descrita por `S`. Índices fora dos limites são recortados, exatamente como acontece em uma fatia normal.
386
385
387
386
Em outras palavras, o método `indices` expõe a lógica complexa implementada nas
@@ -867,9 +866,8 @@ Mas não para grandes vetores multidimensionais. Uma forma melhor de comparar um
867
866
return True # <4>
868
867
----
869
868
====
870
-
<1> Se as `len` dos objetos são diferentes, eles não são iguais.
871
-
Este teste é importante porque o `zip` encerra a iteração
872
-
assim que o primeiro argumento é consumido.
869
+
<1> Objetos de tamanho diferentes não são iguais.
870
+
Teste necessário porque `zip` retorna quando termina o iterável menor.
873
871
<2> `zip` produz um gerador de tuplas criadas a partir dos itens em cada argumento iterável.
874
872
<3> Sai assim que dois componentes sejam diferentes, devolvendo `False`.
875
873
<4> Caso contrário, os objetos são iguais.
@@ -1281,9 +1279,9 @@ o uso do `*` como opção de formatação.
0 commit comments