r créer des objets d’une classe spécifique. À la fin du chapitre précédent, nous avons écrit quelques constructeurs. Utilisons-les enfin pour créer un objet.
Voici un exemple qui crée u... selon la position donnée."""
if position in cls.positions:
return f"On a trouvé u... modifiera dans toutes les autres** !
</note>
Enfin, les **attributs statiques** sont des attributs q
ent appelé. C’est pourquoi %%if __name__ == "__main__"%% est utile.
++++
**Une Exception est déclen... la composition ?**
1.<code python>
class SteamTrain:
"""Un train à vapeur."""
def __init__(self):
self.locomotive = {"color": "gray", "c... "coal"] -= 10
</code>
2.<code python>
class Train:
"""Classe de base pour les trains."""
tant que développeur, mais dès que vous aurez besoin que quelqu’un d’autre utilise un projet, ou que v... ammes Python :
<code python>
if __name__ == "__main__":
do_something()
print("Hello, World")
... entre la variable %%__name__%% et le nom %%__main__%%.
Mais pourquoi ? Je ne nomme jamais mes fichiers %%__main__%%, moi !
En effet, ce nom n’est pas un nom que
m/fr/courses/5647281-appliquez-le-principe-du-domain-driven-design-a-votre-application|Appliquez le principe du Domain-Driven Design à votre application]]), et en prena... ctionnalités additionnelles pourrait-on avoir besoin à l’avenir ? Comment vous assurer que votre code ... vole!")
class Parrot(Bird):
pass
class Pinguin(Bird):
pass # Pourtant le pinguin ne vole pas..
"), Person("Bob"), Person("Carol")]
for volunteer in volunteers:
volunteer.walk()
# Ici, nous rep... e"), Fish("Wanda"), Person("Bob")]
for volunteer in volunteers:
volunteer.walk() # Oops!
</code>... st[int]) -> int:
max_value = 0
for number in numbers:
if number > max_value:
... être utilisé ainsi :
<code python>
for volunteer in volunteers:
if hasattr(volunteer, "walk"):
res langages de programmation, Python n’a pas besoin que vous spécifiiez le type d’une variable quand ... *Il faut écrire un constructeur pour une classe afin d'instancier des objets.**
-Vrai.
-Faux.
++... necté !")
return
for device in self.devices:
print(f"-> {device.name}")
print("Fin de l'affichage.")
class Device:
"""Appareil
ion une sous-classe de Film, nous n’avons pas besoin d’ajouter à nouveau notre attribut ''name'', ni d... rtus_heritage_02.png}}
==== Les modèles ====
Enfin, l’un des avantages de l’héritage concerne la faç... comme nous regroupons des données et du code au sein d’un paquet en utilisant les classes, nous relion... iché. Ce serait donc un nouveau type de post.
Enfin, il y a des utilisateurs spéciaux nommés modérate
utiliser la programmation orientée objet à son plein potentiel.
</note>
Enfin, vous avez les variables – elles permettent de définir des valeurs par déf... s sur la création concrète d’objets dans le prochain chapitre.
Qu’est-ce que c’est que ce ''color="re... otre exemple).
La plupart des classes auront besoin d’un constructeur. Si vous n’en fournissez pas, P
orte quel langage de programmation depuis un certain temps a déjà rencontré une **exception**. Une exc... ction a été appelée, soit simplement pour mettre fin au programme.
Lorsqu’une exception est levée, el... lidAddressException'' – qui aura probablement besoin d’être gérée par quiconque appelle ce constructeu... nit__(msg, *args, **kwargs)
if __name__ == "__main__":
user = User("John", "supersecret")
tr
s ======
Félicitations : vous êtes parvenu à la fin du cours ! Si vous débutez en programmation orien... en **paquets**.
===== Les exceptions =====
Enfin, nous avons découvert – en acquérant des connaiss... xceptions** et par un apprentissage de première main – que les choses peuvent mal se passer au sein des programmes. Il existe des **exceptions intégrées**
ette pour ''Cake'' possède aussi la méthode ''cut_in_parts()'' (« couper en parts »), ce qui signifie ... r un plat chez vous ne le crée pas chez votre voisin.
Je peux déjà créer des variables et des fonctio... er la couleur d’un marteau en le peignant.
- Enfin, je possède aussi des tournevis. Ils ont une tail
e** – sujet que nous aborderons brièvement plus loin, au chapitre 4 – les classes parents sont séparée... name
self.password = password
def login(self):
"""Connecte l'utilisateur."""
... f.time_posted}")
print()
for post in self.posts:
post.display()
nous avons utilisé ici est souvent nommé un **Mixin** – nommé ainsi car vous ajoutez (« mix in ») une fonctionnalité nécessaire. Si vous avez programmé e... name
self.password = password
def login(self):
"""Connecte l'utilisateur."""
... f.time_posted}")
print()
for post in self.posts:
post.display()
):
pass
elements = [A(), B()]
for item in elements:
item.func()
</code>
- ''B.func()... relation entre des concepts.
- Il réduit le besoin de dupliquer du code.
- Pour décomposer du code