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: vol1/cap03.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
@@ -438,7 +438,7 @@ A <<mapping_methods_tbl>> mostra os métodos implementados por `dict` e pelas va
438
438
| `d.pop(k, [default])` | ● | ● | ● | Remove e devolve valor em `k`, ou `default` ou `None`, se `k` não existir
439
439
| `d.popitem()` | ● | ● | ● | Remove e devolve, na forma `(chave, valor)`, o último item inseridofootnote:[`OrderedDict.popitem(last=False)` remove o primeiro item inserido (FIFO). O argumento nomeado `last` não é suportado por `dict` ou `defaultdict`, pelo menos até Python 3.10b3.]
440
440
| `+d.__reversed__()+` | ● | ● | ● | Suporte a `reverse(d)`—devolve um iterador de chaves, da última para a primeira a serem inseridas
441
-
| `+d.__ror__(other)+` | ● | ● | ● | Suporte a `other \| dd`—operador de união reverso (Python ≥ 3.9)footnote:[Operadores reversos são tratados no «Capítulo 16» [.small]#[vol.2, fpy.li/4r].]#
441
+
| `+d.__ror__(other)+` | ● | ● | ● | Suporte a `other \| dd`—operador de união reverso (Python ≥ 3.9)footnote:[Operadores reversos são tratados no «Capítulo 16» [.small]#[vol.2, fpy.li/4r].]#]
442
442
|`d.setdefault(k, [default])` | ● | ● | ● | Se `k in d`, devolve `d[k]`; senão, atribui `d[k] = default` e devolve isso
Copy file name to clipboardExpand all lines: vol1/cap06.adoc
+55-51Lines changed: 55 additions & 51 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,7 +69,7 @@ Em 1997, ((("object references", "variables as labels versus boxes", id="ORvar06
69
69
"as labels versus boxes", secondary-sortas="labels versus boxes", id="Vlabel06")))
70
70
fiz um curso de verão sobre Java no MIT.
71
71
A professora Lynn Steinfootnote:[Lynn Andrea Stein é uma aclamada educadora de ciências da computação.
72
-
Ela «atualmente leciona na Olin College of Engineering (EN)» [.small]#[fpy.li/6-1]#.]
72
+
Ela atualmente leciona no «Olin College of Engineering» [.small]#[fpy.li/6-1]#.]
73
73
explicou que a metáfora comum, de “variáveis como caixas”,
74
74
na verdade atrapalha o entendimento de variáveis de
75
75
referência em linguagens orientadas a objetos.
@@ -258,6 +258,7 @@ mas outro interpretador Python pode retornar algo diferente.
258
258
O ponto fundamental é que o ID será sempre um valor numérico único,
259
259
e ele nunca mudará durante a vida do objeto.
260
260
261
+
<<<
261
262
Na prática, raramente usamos a função `id()` quando programamos.
262
263
A verificação de identidade é feita, na maior parte das vezes, com o operador `is`,
263
264
que compara os IDs dos objetos, então nosso código não precisa chamar `id()`
@@ -276,7 +277,7 @@ diferentes--pode não ser viável usar `is`.
276
277
277
278
278
279
[[choosing_eq_v_is_sec]]
279
-
==== Escolhendo Entre == e is
280
+
==== Escolhendo entre == e is
280
281
281
282
O operador ((("is operator"))) `==` compara os valores de objetos (os dados que eles contêm),
282
283
enquanto `is` compara suas identidades.
@@ -435,14 +436,15 @@ Mas se existirem itens mutáveis, isso pode gerar surpresas desagradáveis.
435
436
Em <<ex_shallow_copy>> criamos uma lista contendo outra lista e uma tupla,
436
437
e então fazemos algumas mudanças para ver como isso afeta os objetos referenciados.
437
438
439
+
<<<
438
440
[TIP]
439
441
====
440
-
Se você tem um computador conectado à internet disponível,
441
-
recomendo fortemente que você assista à animação interativa do
442
-
<<ex_shallow_copy>> em «Online Python Tutor» [.small]#[fpy.li/6-3]#.
442
+
Se você está conectado à internet,
443
+
recomendo que assista à animação interativa do
444
+
<<ex_shallow_copy>> no «_Online Python Tutor_» [.small]#[fpy.li/6-3]#.
443
445
No momento em que escrevo, o link direto para um exemplo pronto no _pythontutor.com_
444
-
não estava funcionando de forma estável.
445
-
Mas a ferramenta é ótima, então vale a pena gastar seu tempo copiando e colando o código.
446
+
não funciona sempre.
447
+
Mas a ferramenta é ótima, então vale a pena investir o tempo copiando e colando o código.
446
448
====
447
449
448
450
@@ -463,7 +465,7 @@ print('l1:', l1)
463
465
print('l2:', l2)
464
466
----
465
467
====
466
-
<1> `l2` é uma cópia rasa de `l1`. Este estado está representado em <<shallow_copy1>>.
468
+
<1> `l2` é uma cópia rasa de `l1`. Este estado está representado na <<shallow_copy1>>.
467
469
<2> Concatenar `100` a `l1` não tem qualquer efeito sobre `l2`.
468
470
<3> Aqui removemos `55` da lista interna `l1[1]`. Isso afeta `l2`,
469
471
pois `l2[1]` está associado à mesma lista em `l1[1]`.
@@ -476,15 +478,15 @@ Isso é equivalente a fazer `l2[2] = l2[2] + (10, 11)`.
476
478
Agora as tuplas na última posição de `l1` e `l2` não são mais o mesmo objeto.
477
479
Veja <<shallow_copy2>>.
478
480
481
+
A saída do <<ex_shallow_copy>> está no <<ex_shallow_copy_out>>,
482
+
e o estado final dos objetos está representado na <<shallow_copy2>>.
483
+
479
484
[[shallow_copy1]]
480
485
.Estado do programa imediatamente após a atribuição `l2 = list(l1)` em <<ex_shallow_copy>>. `l1` e `l2` se referem a listas diferentes, mas as listas compartilham referências para os mesmos objetos internos, a lista `[66, 55, 44]` e para a tupla `(7, 8, 9)`. (Diagrama gerado pelo Online Python Tutor)
.Estado final de `l1` e `l2`: elas ainda compartilham referências para o mesmo objeto lista, que agora contém `[66, 44, 33, 22]`, mas a operação `l2[2] += (10, 11)` criou uma nova tupla com conteúdo `(7, 8, 9, 10, 11)`, sem relação com a tupla `(7, 8, 9)` referenciada por `l1[2]`. (Diagrama gerado pelo Online Python Tutor.)
0 commit comments