ez les modules et les classes pour découper votre code ======
===== Pourquoi structurer son code ? =====
Plus les projets de programmation se complexifient... us de classes, bibliothèques et fonctions à votre code, il devient plus ardu de découvrir où se cachent ... voir ce que font les différentes parties de votre code.
Cela pose moins de problèmes lorsque vous début
enclassrooms]].
====== Quiz : Structurer votre code dans un programme Python ======
**Parmi les séri... s imports de ce module sont importés.
- Tout le code de ce module est exécuté.
++++ Réponse|
Choix 1,... orté est exécuté de haut en bas, comme tout autre code du fichier que vous avez originellement appelé. C... -là que ça plantera.
++++
Essayez d’exécuter le code suivant :
<code python>
class PersonException(Ex
de types – dans une liste ou un dictionnaire :
<code python>
numberList = [1.2, 3.5, 4.3, 2.8]
phoneNu... 24 765098"}
mixedList = [5, 4, 3, 2, 1, "boom"]
</code>
<note warning>
Les dictionnaires se doivent d’a... évoles pour une collecte de nourriture locale :
<code python>
class Person:
"""Personne."""
de... er(),
"nails": [Nail(), Nail(), Nail()],
}
</code>
De la même façon que précédemment, nous avons
es concepts et notre compréhension du problème en code.
Pour ce faire, vous affinerez probablement un p... vous convient au cours de votre carrière dans le code, et vous le modifierez en fonction du projet et d... c cette approche, vous devez être prêt à jeter du code à mesure que votre design se développe. Vous pouv... me, essayer différentes approches, et utiliser du code et des classes provisoires pour modéliser les int
tructeur** ? Il ressemblait à peu près à ceci :
<code python>
class Rectangle:
def __init__(self, l... self.width = width
self.color = color
</code>
Nous utilisons ces constructeurs pour créer des... ''Rectangle'' de longueur 5 et de largeur 3 :
<code python>
rectangle = Rectangle(5, 3)
</code>
<note>
Il est important que les paramètres que vous fourni
Pour ce faire, on utilise le mot-clé **raise**.
<code python>
def get_half_even_number(number):
if ... er}"
)
raise Exception(message)
</code>
Dans cet exemple, nous déclenchons une exceptio... =
Lorsqu’une exception est déclenchée dans notre code – et qu’elle n’est pas **gérée** – habituellement... truction **try-catch** dans d’autres langages).
<code python>
def increase_percent(initial_value, after
ation de variables (x = 3).
Voici un exemple :
<code python>
class Rectangle:
width = 3
height... (self):
return self.width * self.height
</code>
Chaque déclaration de classe commence avec le m... ' et utilisé les indentations pour montrer où le code doit se résoudre – c’est la même chose avec les c... ctuelle », ou « this », ou encore « toto ». Votre code fonctionnerait aussi bien. C’est cependant une **
est aussi simple que ça ! Prenons cet exemple :
<code python>
from abc import ABC # permet de définir... def area(self):
return length * length
</code>
Dans cet exemple, ''Shape'' (“Forme”) contient... ités, il peut parfois être utile d’avoir accès au code des méthodes des classes parents, depuis les clas... cela, nous utilisons ''super()'' – comme ceci :
<code python>
class Drink:
"""Une boisson."""
ooms]].
====== Appliquez l’héritage dans votre code Python ======
===== Qu’est-ce que l’héritage ? =... ù vous pourriez utiliser un ''Film'' dans votre code. **Un ''FilmCassette'' reste avant tout ''Film''*... science-fiction – cela représenterait beaucoup de code copié-collé, en l’absence d’héritage ! Si vous vo... ionnalité d’un programme sans avoir à modifier le code existant.
Imaginons que vous proposiez deux opti
pitres [[h310_modules_et_classes_pour_decouper_le_code|Utilisez les modules et les classes pour découper votre code]] et [[h320_decomposer_probleme_oriente_objet|Déc... ous le traiterons donc ici.
Voici un exemple :
<code python>
class Cat:
"""Un chat."""
def me... = TalkingCat()
salem.meow()
salem.say("Hello!")
</code>
Ici, nous avons une classe ''Cat'' ("Chat") et
re, leur façon de s'utiliser.
++++
**Observez ce code. Que se passera-t-il quand il sera exécuté** ?
<code python>
class A:
def func(self):
pass... A(), B()]
for item in elements:
item.func()
</code>
- ''B.func()'' marchera tout à fait bien, il... concepts.
- Il réduit le besoin de dupliquer du code.
- Pour décomposer du code en segments logiques
ppliquer_heritage|Appliquez l’héritage dans votre code Python]]
* [[220_ecrire_une_sous_classe|Écrivez... s un programme Python]]
===== Structurez votre code dans un programme Python =====
* [[310_modules_et_classes_pour_decouper_le_code|Utilisez les modules et les classes pour découper votre code]]
* [[320_decomposer_probleme_oriente_objet|Déc
mation orientée objet. Vous êtes le chef de votre code, et concoctez vos plats (que l'on appellera des *... e fonction ou méthode lorsqu’on l’utilise dans le code. Par exemple, la ligne ''x = add(2, 3)'' appell... ts sont des créations qui prennent vie dans votre code.
Les objets peuvent être stockés dans une variab... nue précédemment. Elle permet de **structurer son code autrement**, tout en ajoutant une couche d’abstra
classe de base, en lui ajoutant des attributs.
<code python>
class FilmCassette(Film):
"""Un film ... embobiner !")
self.magnetic_tape = True
</code>
En cas d’**héritage multiple** – sujet que nous... /note>
===== Appliquez les concepts : écrivez du code en utilisant l’héritage =====
Dans cet exercice,... cteurs pour chaque classe !
++++ Proposition |
<code python>
"""Définit les classes propres à notre fo