Skip to content

Commit 3120579

Browse files
committed
errata
1 parent 47a7bfa commit 3120579

27 files changed

Lines changed: 90 additions & 100 deletions

online/Prefacio.adoc

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ Criar sequências definidas pelo usuário só é discutido na <<classes_protocol
8181
Criar suas próprias ABCs é discutido ainda mais tarde, na <<classes_protocols_part>>, pois acredito na importância de estar confortável usando uma ABC antes de escrever uma.
8282

8383
Essa abordagem tem algumas vantagens.
84-
Primeiro, saber o que está disponivel para uso imediato pode evitar que você reinvente a roda. Usamos as classes de coleções existentes com mais frequência que implementamos nossas próprias coleções, e podemos prestar mais atenção ao uso avançado de ferramentas prontas adiando a discussão sobre a criação de novas ferramentas.
85-
Também é mais provável herdamos de ABCs existentes que criar uma nova ABC do zero.
84+
Primeiro, saber o que está disponivel para uso imediato pode evitar que você reinvente a roda. Usamos as classes de coleções existentes com mais frequência que implementamos nossas próprias coleções, e podemos prestar mais atenção ao uso avançado de ferramentas prontas, adiando a discussão sobre a criação de novas ferramentas.
85+
Também é mais provável herdar de ABCs existentes que criar uma nova ABC do zero.
8686
E, finalmente, acredito ser mais fácil entender as abstrações após vê-las em ação.
8787

8888
A desvantagem dessa estratégia são as referências a pontos futuros espalhadas pelo livro.
89-
Acredito que isso é mais fácil de tolerar agora que você sabe porque escolhi esse caminho.
89+
Espero que isso seja mais fácil de tolerar agora que você sabe porque escolhi esse caminho.
9090

9191

9292
==== Cinco livros em um
@@ -216,11 +216,8 @@ Sebastopol, CA 95472
216216
707-829-0104 (fax)
217217
----
218218

219-
Há uma página online para este livro, com erratas, exemplos e informação adicional, que pode ser acessada aqui: https://fpy.li/p-4.
220-
221-
++++
222-
<!--Don't forget to update the link above.-->
223-
++++
219+
Há uma página online para o original em inglês deste livro, com erratas e informação adicional,
220+
que pode ser acessada aqui: https://fpy.li/p-4.
224221

225222
Envie email para _bookquestions@oreilly.com_, com comentários ou dúvidas técnicas sobre o livro.
226223

online/cap02.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2256,7 +2256,7 @@ memmap([ 3016362.69195522, 535281.10514262, 4566560.44373946])
22562256
<1> Carrega 10 milhões de números de ponto flutuante de um arquivo de texto.
22572257
<2> Usa a notação de fatiamento de sequência para inspecionar os três últimos números.
22582258
<3> Multiplica cada elemento no array `floats` por `.5` e inspeciona novamente os três últimos elementos.
2259-
<4> Importa o cronômetro de medida de tempo em alta resolução (disponível desde Python 3.3).
2259+
<4> Importa o cronômetro de medida de tempo em alta resolução (disponível desde o Python 3.3).
22602260

22612261
<5> Divide cada elemento por `3`;
22622262
o tempo decorrido para dividir os 10 milhões de números de ponto flutuante é menos de 40 milissegundos.

online/cap03.adoc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ A((("dictionaries and sets", "significant changes to"))) maior parte das mudanç
4444
segunda edição se concentra em novos recursos relacionados a tipos de mapeamento:
4545

4646
* A <<modern_dict_syntax_sec>> fala da sintaxe aperfeiçoada de desempacotamento
47-
e de diferentes maneiras de mesclar mapeamentos—incluindo os operadores `|` e `|=`, suportados pelos `dicts` desde Python 3.9.
47+
e de diferentes maneiras de mesclar mapeamentos—incluindo os operadores `|` e `|=`, suportados pelos `dicts` desde o Python 3.9.
4848
* A <<pattern_matching_mappings_sec>> ilustra o manuseio de mapeamentos com `match/case`, recurso que surgiu no Python 3.10.
4949
* A <<ordereddict_sec>> agora se concentra nas pequenas mas ainda relevantes diferenças entre
50-
`dict` e `OrderedDict`—levando em conta que, desde Python 3.6, `dict` passou a manter a ordem de inserção das chaves.
50+
`dict` e `OrderedDict`—levando em conta que, desde o Python 3.6, `dict` passou a manter a ordem de inserção das chaves.
5151
* Novas seções sobre os objetos view devolvidos por `dict.keys`, `dict.items`, e `dict.values`:
5252
a <<dictionary_views_sec>> e a <<set_ops_dict_views_sec>>.
5353

@@ -65,7 +65,7 @@ para o http://fluentpython.com, o site que complementa o livro.
6565
O https://fpy.li/hashint[post de 18 páginas] (EN) foi atualizado e expandido, e inclui explicações e diagramas sobre:
6666
6767
* O algoritmo de tabela de hash e as estruturas de dados, começando por seu uso em `set`, que é mais simples de entender.
68-
* A otimização de memória que preserva a ordem de inserção de chaves em instâncias de `dict` (desde Python 3.6) .
68+
* A otimização de memória que preserva a ordem de inserção de chaves em instâncias de `dict` (desde o Python 3.6) .
6969
* O layout do compartilhamento de chaves em dicionários que mantêm atributos de
7070
instância—o `+__dict__+` de objetos definidos pelo usuário (otimização implementada no Python 3.3).
7171
====
@@ -129,7 +129,7 @@ Caso contrário, a propagação da sintaxe de compreensão mostra que agora é m
129129

130130
A https://fpy.li/pep448[PEP 448—Additional Unpacking Generalizations (_Generalizações de Desempacotamento Adicionais_)]
131131
melhorou o suporte ao desempacotamento de mapeamentos((("unpacking", "mapping unpackings")))((("mappings", "unpacking")))
132-
de duas formas, desde Python 3.5.
132+
de duas formas, desde o Python 3.5.
133133

134134
Primeiro, podemos((("&#x002A;&#x002A; (double star) operator")))((("double star (&#x002A;&#x002A;) operator")))
135135
aplicar `**` a mais de um argumento em uma chamada de função.
@@ -758,7 +758,7 @@ os tipos de mapeamentos incluídos na biblioteca padrão diferentes de `defaultd
758758
==== collections.OrderedDict
759759

760760
Agora((("collections.abc module", "defaultdict and OrderedDict")))((("OrderedDict"))) que o `dict` embutido
761-
também mantém as chaves ordenadas (desde Python 3.6),
761+
também mantém as chaves ordenadas (desde o Python 3.6),
762762
o motivo mais comum para usar `OrderedDict` é escrever código compatível com versões anteriores de Python.
763763
Dito isso, a documentação lista algumas diferenças entre `dict` e `OrderedDict` que
764764
ainda persistem e que cito aqui:
@@ -1399,7 +1399,7 @@ Por exemplo, para produzir a união de quatro coleções, `a`, `b`, `c`, e `d`,
13991399
`a.union(b, c, d)`, onde `a` precisa ser um `set`,
14001400
mas `b`, `c`, e `d` podem ser iteráveis de qualquer tipo que produza itens hashable.
14011401
Para criar um novo conjunto com a união de quatro iteráveis,
1402-
desde Python 3.5 você pode escrever `{*a, *b, *c, *d}` ao invés de atualizar um conjunto existente, graças à
1402+
desde o Python 3.5 você pode escrever `{*a, *b, *c, *d}` ao invés de atualizar um conjunto existente, graças à
14031403
https://fpy.li/pep448[PEP 448—Additional Unpacking Generalizations (_Generalizações de Desempacotamento Adicionais_)].
14041404
14051405
====

online/cap04.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ então o acréscimo mais notável é a <<finding_chars_sec>>,
4646
descrevendo um utilitário de linha de comando para busca no banco de dados Unicode—uma forma de encontrar
4747
gatinhos sorridentes ou hieroglifos do Egito antigo.
4848

49-
Vale a pena mencionar que o suporte a Unicode no Windows ficou melhor e mais simples desde Python 3.6,
49+
Vale a pena mencionar que o suporte a Unicode no Windows ficou melhor e mais simples desde o Python 3.6,
5050
como veremos na <<encoding_defaults>>.
5151

5252
Vamos começar então com os conceitos não-tão-novos mas fundamentais de caracteres, pontos de código e bytes.
@@ -210,7 +210,7 @@ como `endswith`, `replace`, `strip`, `translate`, `upper` e dezenas de outros,
210210
com sequências binárias—mas com argumentos `bytes` em vez de `str`.
211211
Além disso, as funções de expressões regulares no módulo `re` também funcionam com sequências binárias,
212212
se a regex for compilada a partir de uma sequência binária ao invés de uma `str`.
213-
Desde Python 3.5, o operador `%` voltou a funcionar com sequências binárias.footnote:[Ele não funcionava de Python 3.0 ao 3.4,
213+
Desde o Python 3.5, o operador `%` voltou a funcionar com sequências binárias.footnote:[Ele não funcionava de Python 3.0 ao 3.4,
214214
causando muitas dores de cabeça nos desenvolvedores que lidam com dados binários.
215215
A decisão está documentada na
216216
https://fpy.li/pep461[PEP 461--Adding % formatting to bytes and bytearray (_Acrescentando formatação com % a bytes e bytearray_)]. (EN)]
@@ -1768,7 +1768,7 @@ Para ajudar no processamento manual de sequências `str` ou `bytes` que são nom
17681768
o módulo `os` fornece funções especiais de codificação e decodificação,
17691769
`os.fsencode(name_or_path)` e `os.fsdecode(name_or_path)`.
17701770
Ambas as funções aceitam argumentos dos tipos `str`, `bytes` ou,
1771-
desde Python 3.6, um objeto que implemente a interface `os.PathLike`.
1771+
desde o Python 3.6, um objeto que implemente a interface `os.PathLike`.
17721772

17731773
O Unicode é um buraco de coelho bem fundo.
17741774
É hora de encerrar nossa exploração de `str` e `bytes`.((("", startref="UTVdual04")))((("", startref="Sdual04")))
@@ -2024,7 +2024,7 @@ Na memória, Python 3 armazena cada `str` como uma sequência de pontos de códi
20242024
usando um número fixo de bytes por ponto de código,
20252025
para permitir o acesso direto eficiente a qualquer caractere ou fatia.
20262026
2027-
Desde Python 3.3, ao criar um novo objeto `str`
2027+
Desde o Python 3.3, ao criar um novo objeto `str`
20282028
o interpretador verifica os caracteres no objeto,
20292029
e escolhe o layout de memória mais econômico que seja adequado para aquela `str` em particular:
20302030
se existirem apenas caracteres na faixa `latin1`, aquela `str` vai usar apenas um byte por ponto de código.

online/cap05.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Além de ser mais legível, essa forma permite fornecer o mapeamento de campos e
151151
tipos como `**fields_and_types`.
152152
====
153153

154-
Desde Python 3.6, `typing.NamedTuple` pode também ser usada em uma instrução `class`,
154+
Desde o Python 3.6, `typing.NamedTuple` pode também ser usada em uma instrução `class`,
155155
com as anotações de tipo escritas como descrito na
156156
https://fpy.li/pep526[PEP 526—Syntax for Variable Annotations (_Sintaxe para Anotações de Variáveis_)] (EN).
157157
É mais legível, e torna fácil sobrescrever métodos ou acrescentar métodos novos.
@@ -398,14 +398,14 @@ o método de classe `_make(iterable)`, e o método de instância `_asdict()`.
398398
[WARNING]
399399
=====
400400
Até Python 3.7, o método `_asdict` devolvia um `OrderedDict`.
401-
Desde Python 3.8, ele devolve um `dict` simples—o que não é problema,
401+
Desde o Python 3.8, ele devolve um `dict` simples—o que não é problema,
402402
agora que podemos confiar na ordem de inserção das chaves.
403403
Se você precisar de um `OrderedDict`, a
404404
https://fpy.li/3q[documentação do `_asdict`] (EN)
405405
recomenda criar um com o resultado: `OrderedDict(x._asdict())`.
406406
=====
407407

408-
Desde Python 3.7, a `namedtuple` aceita o argumento nomeado `defaults`,
408+
Desde o Python 3.7, a `namedtuple` aceita o argumento nomeado `defaults`,
409409
fornecendo um iterável de N valores default para cada um dos N campos mais à direita na definição da classe.
410410
O <<ex_coord_tuple_default>> mostra como definir uma tupla nomeada
411411
`Coordinate` com um valor default para o campo `reference`.
@@ -1009,7 +1009,7 @@ include::../code/05-data-classes/dataclass/club_generic.py[]
10091009
====
10101010
<1> `list[str]` significa "uma lista de str."
10111011

1012-
A nova sintaxe `list[str]` é um tipo genérico parametrizado: desde Python 3.9,
1012+
A nova sintaxe `list[str]` é um tipo genérico parametrizado: desde o Python 3.9,
10131013
o tipo embutido `list` aceita aquela notação com colchetes para especificar o tipo dos itens da lista.
10141014

10151015
[WARNING]
@@ -1158,7 +1158,7 @@ Found 1 error in 1 file (checked 1 source file)
11581158

11591159
Infelizmente, a dica fornecida pelo Mypy (versão 0.910 quando essa seção foi revisada)
11601160
não é muito útil no contexto do uso de `@dataclass`.
1161-
Primeiro, ele sugere usar `Set`, mas desde Python 3.9 podemos usar
1161+
Primeiro, ele sugere usar `Set`, mas desde o Python 3.9 podemos usar
11621162
`set`—sem a necessidade de importar `Set` de `typing`.
11631163
E mais importante, se acrescentarmos uma dica de tipo como `set[…]`
11641164
a `all_handles`, `@dataclass` vai encontrar essa anotação e

online/cap07.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ como uma entidade que pode ser:
1717

1818
* Criada durante a execução de um programa
1919
* Atribuída a uma variável ou a um elemento em uma estrutura de dados
20-
* Cassada como argumento para uma função
20+
* Passada como argumento para uma função
2121
* Devolvida como o resultado de uma função
2222

2323
Inteiros, strings e dicionários são outros exemplos de objetos de primeira classe no Python—nada de incomum aqui.
@@ -48,7 +48,7 @@ A <<positional_only_params>> é nova, e fala de um recurso que surgiu no Python
4848
Transferi a discussão sobre acesso a anotações de funções durante a execução para a <<runtime_annot_sec>>.
4949
Quando escrevi a primeira edição, a https://fpy.li/pep484[PEP 484—Type Hints (_Dicas de Tipo_)] (EN)
5050
ainda estava sendo considerada, e as anotações eram usadas de várias formas diferentes.
51-
Desde Python 3.5, anotações precisam estar em conformidade com a PEP 484.
51+
Desde o Python 3.5, anotações precisam estar em conformidade com a PEP 484.
5252
Assim, o melhor lugar para falar delas é na discussão sobre as dicas de tipo.
5353

5454
[NOTE]
@@ -482,7 +482,7 @@ Observe que argumentos somente nomeados não precisam ter um valor default: eles
482482
[[positional_only_params]]
483483
==== Parâmetros somente posicionais
484484

485-
Desde Python 3.8, assinaturas de funções definidas pelo usuário podem especificar parâmetros somente posicionais.
485+
Desde o Python 3.8, assinaturas de funções definidas pelo usuário podem especificar parâmetros somente posicionais.
486486
Esse recurso sempre existiu para funções embutidas, tal como `divmod(a, b)`,
487487
que só pode ser chamada com parâmetros posicionais, e não na forma `divmod(a=10, b=4)`.
488488

@@ -785,7 +785,7 @@ functools.partial(<function tag at 0x10206d1e0>, 'img', class_='pic-frame') <4>
785785
<2> Cria a função `picture` a partir de `tag`, fixando o primeiro argumento posicional em `'img'` e o argumento nomeado `class_` em `'pic-frame'`.
786786
<3> `picture` funciona como esperado.
787787
<4> `partial()` devolve um objeto `functools.partial`.footnote:[O https://fpy.li/7-9[código-fonte] de _functools.py_ revela que `functools.partial` é implementada em C e é usada por default.
788-
Se ela não estiver disponível, uma implementação em Python puro de `partial` está disponível desde Python 3.4.]
788+
Se ela não estiver disponível, uma implementação em Python puro de `partial` está disponível desde o Python 3.4.]
789789
<5> Um objeto `functools.partial` tem atributos que fornecem acesso à função original e aos argumentos fixados.
790790

791791
A função `functools.partialmethod` faz o mesmo que `partial`, mas serve para trabalhar com métodos.

online/cap08.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,7 @@ que significa que o tipo de `plural` pode ser `str` ou `None`.
948948

949949
[TIP]
950950
====
951-
Desde Python 3.10 é possível escrever `str | bytes` em vez de `Union[str, bytes]`.
951+
Desde o Python 3.10 é possível escrever `str | bytes` em vez de `Union[str, bytes]`.
952952
É menos digitação, e não precisamos importar `Optional` ou `Union` de `typing`.
953953
Compare a sintaxe antiga com a nova para a dica de tipo do parâmetro `plural` em `show_count`:
954954

online/cap09.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Após criar essa base, poderemos então enfrentar os outros tópicos relativos a
4242

4343
O((("decorators and closures", "significant changes to"))) decorador de _caching_ `functools.cache`—introduzido no Python 3.9—é mais simples que o tradicional `functools.lru_cache`, então falo primeiro daquele. Este último é tratado na <<lru_cache_sec>>, incluindo a forma simplificada introduzida no Python 3.8.
4444

45-
A <<generic_functions>> foi expandida e agora inclui dicas de tipo, a forma recomendada de usar `functools.singledispatch` desde Python 3.7.
45+
A <<generic_functions>> foi expandida e agora inclui dicas de tipo, a forma recomendada de usar `functools.singledispatch` desde o Python 3.7.
4646

4747
A <<parameterized_dec_sec>> agora inclui um exemplo baseado em classes, o <<clockdeco_param_cls_ex>>.
4848

@@ -806,7 +806,7 @@ A maior vantagem de `@lru_cache` é a possibilidade de limitar seu uso de memór
806806
LRU((("Least Recently Used (LRU)"))) é a sigla de _Least Recently Used_ (literalmente "Usado Menos Recentemente").
807807
Significa que registros que há algum tempo não são lidos, são descartados para dar lugar a novos itens.
808808

809-
Desde Python 3.8, `lru_cache` pode ser aplicado de duas formas.
809+
Desde o Python 3.8, `lru_cache` pode ser aplicado de duas formas.
810810
Abaixo vemos o modo mais simples em uso:
811811

812812
[source, python]
@@ -816,7 +816,7 @@ def costly_function(a, b):
816816
...
817817
----
818818

819-
A outra forma—disponível desde Python 3.2—é invocá-lo como uma função,
819+
A outra forma—disponível desde o Python 3.2—é invocá-lo como uma função,
820820
com `()`:
821821

822822
[source, python]
@@ -911,7 +911,7 @@ O <<singledispatch_ex>> mostra como funciona.
911911

912912
[WARNING]
913913
====
914-
`functools.singledispatch` existe desde Python 3.4, mas só passou a suportar dicas de tipo no Python 3.7.
914+
`functools.singledispatch` existe desde o Python 3.4, mas só passou a suportar dicas de tipo no Python 3.7.
915915
As últimas duas funções no <<singledispatch_ex>> ilustram a sintaxe que funciona em todas as versões de Python desde a 3.4.
916916
====
917917

online/cap11.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ A <<format_display_sec>> foi atualizada para mencionar as f-strings, introduzida
4343
então quaisquer métodos `+__format__+` implementados antes vão funcionar também com as f-strings.
4444

4545
O resto do capítulo quase não mudou—os métodos especiais são praticamente os mesmos
46-
desde Python 3.0, e as ideias centrais apareceram no Python 2.2.
46+
desde o Python 3.0, e as ideias centrais apareceram no Python 2.2.
4747

4848
Vamos começar pelos métodos de representação de objetos.
4949

0 commit comments

Comments
 (0)