POO, documentation et tests - TP2
1 Créer l’arborscence
└── P
└── Cours1A
└── IPOO
├── TP1
│ ├── Exercice_1
│ │ └── ex.py
│ ├── Exercice_2
│ │ └── ex.py
│ ├── ...
│ └── Exercice_7
│ └── ex.py
├── TP2
│ ├── Exercice_1
│ │ └── ex.py
│ ├── Exercice_2
│ ├── ...
Pour prendre la bonne habitude de bien ranger vos fichiers, vous allez créer l’arborscence ci-dessus. Vous pouvez créer chaque dossier et fichier à la main, ou utiliser les commandes ci-dessous (mkdir : make directory):
-
- Sur le bureau > clic droit > Git Bash here
-
mkdir -p /p/Cours1A/IPOO/TP2/Exercice_{1..5}/ && touch /p/Cours1A/IPOO/TP2/Exercice_{1..5}/ex.py- dans Git Bash : clic droit > Paste ou MAJ + INSER
Il est important de stocker vos fichiers dans votre lecteur P: et pas sur votre bureau ou votre disque C: car vos fichiers risqueraient de disparaitre !
2 Moodle
3 Visual Studio Code
-
-
- dans votre Explorer à gauche apparait l’arborescence des dossiers et fichiers de Exercice_1
-
4 Exercices
4.1 Exercice 1
Flake8 est un linter. Il vérifie la mise en forme de votre code et souligne en rouge ce qui ne lui plait pas.
4.2 Exercice 2
Les doctest vu au TP1 ne sont pas utilisés en pratique car cela surcharge les modules. On préfère exporter les tests dans des modules à part. Si l’on veut tester le module produit.py :
on crée dans le même package, un module test_produit.py
dans test_produit.py, on importe
produitetpytest:import pytest from produit import produit
4.3 Exercice 3
4.4 Exercice 4
- Inscription
-
Exemple pour lever une exception
if adresse_electronique.count('@') != 1: raise ValueError( "L'adresse électronique doit contenir un seul symbole @." )
-
-
base_de_donnees : list[tuple[str, str]]
5 Template doc
Voici un modèle que vous pouvez utiliser pour documenter vos fonctions
def ma_fonction(param1, param2):
"""description_courte
description_longue
Parameters
----------
param1 : type (str, int, float, list...)
description_param1
param2 : type
description_param2
Returns
-------
type_retour
description_retour
Examples
--------
>>> 1+1
2
>>> print("abc")
abc
>>> ma_fonction(xxx, yyy)
valeur_esperee
"""
return None
if __name__ == '__main__':
a = ma_fonction(p1, p2)
print(a)