'est ce qu'on appelle une référence partagée**.
<note>
Une référence partagée est une référence qui est... l faut comprendre et être capable de maîtriser.
</note>
Pour illustrer cet effet de bord utilisons une ... 'spam', 2] ; *b* référence l'objet ['spam', 2].
<note>
Cette **notion d'effet de bord**, c'est lorsque ... le, l'autre variable va voir cet objet modifié.
</note>
Ce comportement est parfois voulu mais il n'est
, c'est qu' on ne créé pas de liste temporaire.
<note>
On insistera sur le fait que cette expression gé... eur et de nouveau calculer la somme des carrés.
</note>
<code python>
# l'expression génératrice est un... duire les palindromes qui sont contenus dedans.
<note>
Lorsque on passe une expression génératrice à une fonction, les parenthèses sont facultatives.
</note>
===== En résumé =====
Rappelons qu'en Python t
_hash__|documentation de python]] indique bien:
<note>
If a class defines mutable objects and implement... changes, it will be in the wrong hash bucket).
</note>
Notre classe Point2 illustre bien cette limitat... c3644c0>
# en fait vous utilisez repr()
</code>
<note>
Les f-strings (ou format) utilisent également la méthode spéciale ''%%__str__%%''.
</note>
==== __bool__ ====
Vous vous souvenez que la c
vous vouliez afficher un message si vous avez une note qui est supérieure à 10 sur 20. Prenons cet exemple ; je commence par définir une variable note qui vaut l'entier 8. Puis je vais écrire mon inst... uction, une expression, là, mon expression, c'est note supérieure à 10, et un : Ensuite je vais écrire u... e bloc d'instructions, donc dans ce cas-là, si la note est supérieure strictement à 10.
Si jamais ce tes
'la liste initiale est intacte', liste)
</code>
<note>
Alors que *sort* est une fonction sur les listes... tat. Dans les deux cas, on a une liste à la fin et aucune structure de données temporaire créée.
</note>
iscard(valeur)
print(ensemble)
</code>
<note>
Dans l'exemple ci-dessus, on voit que l'interpré... sentiellement se mettre à faire n'importe quoi.
</note>
Pour être tout à fait clair, lorsqu'on dit qu'i
une nouvelle classe que l'on nommera *Phrase*.
<note>
Par convention pour nommer les classe on utilise le **CamelCase**
</note>
<code python>
class Phrase:
def __init__(self,
: List[int]) -> List[str]:
pass
</code>
<note>
Dans l'exemple ci-dessus nous avons utilisé **ty... s que l'on a pu par contre utiliser int et str.
</note>
Les raisons pour cela sont de deux ordres :
licite le changement de nos variables globales.
<note warning>
Un code dans lequel on a beaucoup de var... le explicites avec des **retours de fonction**.
</note>
===== L'instruction nonlocal =====
Pour expli
a=1, b=2, args=(3,), kwds={'bar': 1000}
</code>
<note>
Notons également que, on ne peut déclarer qu'un ... rape-tout ; on ne peut pas par exemple déclarer
</note>
<code python>
# c'est illégal de faire ceci
def
de *spam* qui va référencer cet objet fonction.
<note>
Rappelons que le bloc de code d'une fonction n'e... que lors de l'appel pas lors de l'importation.
</note>
Maintenant que le code de *spam.py* est évalué,
port reload
>>> reload(multiple_import)
</code>
<note>
''%%importlib.reload%%'' est une fonction et non... des parenthèses qui n'est pas celle de import.
</note>
===== Lister les modules chargés =====
L'inter
correspond au **répertoire** ''package_jouet''.
<note>
Par le passé, pour définir un package, il fallai... pondant (et sinon, on obtient un package vide).
</note>
On a coutume de faire la différence entre packa