Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Spécifier le type de vos variables

Conversions de données Manipulation de listes


Accès rapide :
Pourquoi spécifier le type de vos variables
Utilisation de l'outil mypy
Assistance proposée par PyCharm sur le typage des variables
Conclusion

Pourquoi spécifier le type de vos variables

Même si je ne l'ai pas souvent fait, il est possible de spécifier le type de vos variables. Cette possibilité existe depuis Python 3.0 et elle est spécifiée dans la PEP 526.

Pour spécifier le type d'une variable, il faut faire suivre le nom de la variable du caractère : ainsi que le nom du type considéré : par exemple, pi: float = 3.1415. Voici quelques exemples d'utilisation de cette possibilité.

>>> counter: int = 10
>>> base: str = "Counter = "
>>> while counter > 0:
...     message: str = base + str(counter)
...     print(message)
...     counter -= 1
... 
Counter = 10
Counter = 9
Counter = 8
Counter = 7
Counter = 6
Counter = 5
Counter = 4
Counter = 3
Counter = 2
Counter = 1
>>> 

Le fait spécifier le type d'une variable est une aide à une meilleure compréhension du programme. Mais attention, par défaut, il n'y a pas de vérification de la cohérence du typage. Si le type spécifié n'est pas en cohérence avec la nature de la valeur d'initialisation, l'environnement d'exécution Python ne vous indiquera pas d'erreur.

>>> nimportkoi: int = "ne faites pas ça"
>>> print(nimportkoi)
ne faites pas ça
>>> 

En conséquence, et sauf à utiliser un outil de contrôle de typage statique, les deux propositions ci-dessous sont équivalentes : on peut presque dire de la spécification du type de votre variable est de l'ordre du commentaire.

>>> counter1: int = 10
>>> counter2 = 10   # int

A cause de ce manque de contrôle et même si on peut dire que c'est une bonne pratique que de typer vos variables, très rares sont les développeurs qui utilisent cette possibilité.

Utilisation de l'outil mypy

L'outil « mypy » est un outil d'analyse statique de code spécialisé dans le contrôle de typage : cela veut dire qu'il est capable d'analyser le code source et de déduire si votre code réalise des opérations illégales du point de vue du typage.

mypy n'est pas livré de base avec Python. Il est donc nécessaire de l'installer. Le plus simple est d'utiliser l'outil pip (Python Install Package) pour réaliser l'installation de l'outil. Sur Windows, lancez la commande suivante dans une console, démarrée en mode administrateur.
C:\> pip install mypy

Sous système Linux, veuillez lancer la commande suivante.

$> sudo pip install mypy

Pour tester cet outil, veuillez créer un nouveau fichier appelé sample.py. Voici le contenu de ce fichier.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
counter : int = 10

while counter > 0:
    print(counter)
    counter -= 1

counter = "Boouuuummmmmmmm"
print(counter)
Un exemple de violation de spécification type

Maintenant, lancez une analyse sur votre fichier de code via l'outil mypy : cela doit être fait en dehors de l'interpréteur interactif, dans une console de votre système d'exploitation. Il doit détecter une violation de typage en ligne 7. Effectivement, la variable counter est censé contenir un entier. Or, en ligne 7, on y affecte une chaîne de caractères. Certes, si vous lancer le programme, il fonctionnera très bien. Mais pour mypy il y a une incohérence.

$> mypy temp.py 
temp.py:7: error: Incompatible types in assignment (expression has type "str", variable has type "int")
Found 1 error in 1 file (checked 1 source file)
$> 

Assistance proposée par PyCharm sur le typage des variables

Il faut savoir que certains IDE proposent des assistants vous aidant dans la prise en considération du typage. C'est le cas de PyCharm. Par exemple, si vous placez le curseur texte au milieu du nom d'une variable, lors de sa déclaration, une ampoule apparaît au bout de quelques secondes. Cela signifie que PyCharm à une suggestion à vous faire. Si vous activer cet assistant, vous verrez qu'il vous propose d'y rajouter une information de typage, comme le montre la capture d'écran suivante.

Suggestion d'ajout d'une information de typage.

Si vous ajoutez des informations de typage dans vos déclarations de variables, alors sachez que PyCharm possède un outil intégré similaire à mypy. Cette nouvelle capture d'écran montre que PyCharm a détecté une violation du typage.

Détection d'une violation de typage par PyCharm.

Conclusion

De mon point de vue, plus un programme va devenir volumineux et complexe, plus nous aurons besoin d'assistance. Le type est une forme d'assistance sur laquelle vous pourrez compter.

personnellement, j'ai appris à programmer avec des langages de programmation (C, C++ et Java, pour être précis) ou le contrôle de typage était la norme. Ma manière de programmer est donc tout naturellement orientée « typage fort ».

Néanmoins, je vais vous laisser vous faire votre propre opinion sur l'intérêt de typer et de contrôler de typage de vos programmes Python. Mais sachez que dans la suite de ce cours, nous pas systématiquement utiliser le typage et, plus tard, je reviendrais sur ces possibilités.

Conversions de données Manipulation de listes