, mais c’est un peu complexe, et leur utilité est plus rare. Si vous souhaitez en savoir plus, [[https://medium.com/@meghamohan/mutable-and-immutable-side-of-... dit, les méthodes ou attributs d’un objet **sont plus importants** que son type ou sa classe.
Prenons ... ire à d’autres langages. Cette possibilité est de plus en plus utilisée – suivez le guide de styles du p
===
===== Pourquoi structurer son code ? =====
Plus les projets de programmation se complexifient, plus ils deviennent difficiles à comprendre. À mesure que vous ajoutez de plus en plus de classes, bibliothèques et fonctions à votre code, il devient plus ardu de découvrir où se ca
les différents tests, imaginons le logiciel "Crocoplus". Il s'agit d'un système de gestion destiné aux z... s types de tests, et nous allons les aborder sans plus tarder.
==== Les tests unitaires ====
Les tests... partie d'une fonctionnalité.
Dans le projet Crocoplus, un test unitaire pourrait valider que la fonctio... s automatiquement par l'ordinateur. Cela les rend plus rapides à exécuter et plus fiables. Ils correspon
utres développeurs préfèrent adopter une approche plus concrète par le prototypage, et essaieront de com... lorsqu’une classe « is-a » (« est-une ») version plus spécialisée d’une autre classe. Il existe égaleme... uelques attributs à implémenter. Dans sa forme la plus pure, l'interface n'implémente pas les attributs,... es ailes. L'idée est de découper une classe en de plus petites classes spécialisées et ensuite les affec
erait à quel présentateur télé vous ressemblez le plus ? Nous allons réaliser une application semblable ... a analysé son profil et choisi la description la plus proche de sa personnalité. Ellen voit sur la page... ique grâce à un des langages de programmation les plus populaires du monde : **Python**.
De quels outil... ensemble de modules qui permettent de développer plus rapidement en fournissant des fonctionnalités cou
t-ce que l’héritage ? =====
L’une des choses les plus utiles de la programmation orientée objet, c’est ... ''rewind()'', nous obtiendrions donc une erreur ! Plus d’informations à ce sujet au chapitre 5.
</note>
... es :
==== La réutilisabilité ====
La raison la plus simple est la même que celle pour laquelle nous é... nt apparentées grâce à l’héritage. Nous entrerons plus en détail dans les **hiérarchies d’héritage** et
r de planter.
Prenons un exemple. Le problème le plus évident qui pourrait survenir ici serait une erre... ge** dans le programme (bubbling). Python ne fait plus les choses dans l’ordre, mais lance plutôt contin... er jusqu’à ce qu’elle soit gérée ou qu’elle n’ait plus nulle part où aller. Dans ce dernier cas, le prog... mauvaise pratique ! Utilisez toujours des erreurs plus ciblées pour être sûr de ne pas passer sous silen
que trois classes qui gèrent la calculatrice. De plus, la calculatrice gère simplement les quatre opéra... t bien une addition. Mais imaginez un projet bien plus gros. Des classes comme celle-ci peuvent se compt... , une erreur sera précisément **repérée** et donc plus **rapidement corrigée**.
===== Déterminez ce qu... non son fonctionnement interne. Offrant ainsi une plus grande flexibilité à la fois dans nos tests et da
=
Il existe plusieurs types de bases de données. Plus précisément, ce sont plutôt des **Systèmes de Ges... h>
touch app.db
</code>
C'est tout ! Vous n'avez plus rien à faire. Revenons maintenant à Flask et voyo... t entre la base de données et votre application.
Plus spécifiquement, vous écrirez des requêtes en Pyth... pas créer l'utilisateur du tout !
Pour en savoir plus, lisez la [[http://docs.sqlalchemy.org/en/latest/
tème de versioning des paquets =====
Le moyen le plus simple pour installer une version de paquet Pytho... exemple :
<code bash>
# Installer la version la plus élevée disponible au-dessus de 2.2
# mais pas 3.0... install requests~=2.2
# Installer la version la plus élevée disponible au-dessus de 2.1.0
# mais pas l... stall requests~=2.1.0
# Installera la version la plus élevée disponible au-dessus de 2.5.0
pip install
ies de noms de classes suivantes, laquelle est la plus claire ?**
- DatabaseField, StringDatabaseFiel... e programme va planter ?**
- Quand il n’y aura plus de méthodes ou fonctions auxquelles passer l’exce... jusqu’à ce qu’elle soit attrapée ou qu’il n’y ait plus d’endroit où aller – c’est à ce moment-là que ça ... t » est écrit en sortie, car c’est l’exception la plus étroite à être attrapée.
- « Exception caught »
de tests**. Vous verrez également comment devenir plus efficace en utilisant le **test-driven developmen... ez des tests unitaires]]
===== Partie 2 - Allez plus loin avec Pytest =====
* [[210_utilisez_des_mo... r framework Django avec pytest-django]]
* [[240_plus_loin_avec_pytest|Allez plus loin avec Pytest]]
* [[250_quiz_plus_loin_avec_pytest|Quiz : Allez plus l
ncore) le chiffre associé à chacun.
Nous verrons plus tard que Facebook renvoie les valeurs ''male'' ou... un énumérable pour gérer le genre. Pour en savoir plus, lisez la [[https://docs.python.org/3/library/enu... lles décident du contenu à afficher sur une page. Plus spécifiquement, ce sont elles qui génèrent le con... web que nous connaissons l'utilise. Afin d'aller plus loin, je vous invite fortement à lire la partie [
1, color="pink")
</code>
La deuxième option est plus explicite, et moins susceptible de prêter à confu... et votre programme va planter (nous y reviendrons plus tard).
</note>
Nous pouvons également assigner d... gle)''! Vous avouerez que la première version est plus élégante et compréhensible.
</note>
===== Découv... t aux attributs de classe est **minime** : on n'a plus besoin de spécifier le paramètre ''cls''. Pour cr
hon>
db.session.add(Content("Tu es la personne la plus brillante de l'univers", Gender['other']))
</code... hon>
db.session.add(Content("Tu es la personne la plus brillante de l'univers", Gender['other']))
db.ses... code python>
db.add(Content("Tu es la personne la plus brillante de l'univers", Gender['other']))
db.com... code python>
db.add(Content("Tu es la personne la plus brillante de l'univers", Gender['other']))
</code