- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour rajouter des annotations de type sur une fonction, il suffit à l'intérieur de la définition de la fonction,donc ici dans les parenthèses, de spécifier après le nom des paramètres le type de ces paramètres avec les deux points.
00:00:13 :Donc on met deux points et ensuite on met le type de l'objet, donc par exemple int pour un nombre entier,on pourrait mettre float pour un nombre décimal, str pour une chaîne de caractère, ou encore bool pour un booléen.
00:00:25 :Dans ce cas-ci, je vais spécifier que les deux paramètres A et B doivent être de type nombre entier.On peut également spécifier la valeur de retour que l'on souhaite, pour ça on va utiliser la flèche,donc le tiret avec le symbole plus grand que, et on va après de la même façon spécifier le type de la valeur retour,
00:00:45 :donc dans ce cas-ci également un nombre entier, mais on pourrait mettre là encore un nombre décimal, un booléen, ou n'importe quoi d'autre.Donc c'est tout ce qu'on a besoin de faire pour spécifier le type, les deux points, le type de l'objet, et pareil pour la valeur retour ici.
00:00:59 :Il faut bien comprendre qu'à chaque fois, rien n'est obligatoire.Vous pouvez très bien spécifier le type d'un objet ici et ne pas spécifier de valeur retour, et ça fonctionnera de la même façon.
00:01:09 :On peut également ajouter une annotation de type uniquement sur l'un des deux paramètres,et si j'exécute le script, vous voyez que je n'ai aucune erreur.
00:01:16 :Donc ce n'est pas un problème, on peut vraiment mettre des annotations de type juste là où on le souhaite.Si vous souhaitez ajouter des valeurs par défaut, il va falloir les mettre après l'annotation de type.
00:01:26 :Donc pour l'instant, on a deux paramètres A et B qui n'ont pas de valeur par défaut,donc si j'appelle la fonction Add, là j'aurai une erreur puisque je n'ai aucune valeur pour A et B.
00:01:35 :Si vous souhaitez indiquer une valeur par défaut, vous devez la mettre après l'annotation de type, avec un symbole égal,donc on met égal 0 par exemple ici, et pareil pour le deuxième paramètre.
00:01:46 :Si vous souhaitez suivre les conventions, dans ce cas-ci, il faut mettre un espace avant et après le symbole d'égalité,ce qui n'est pas le cas quand on enlève les annotations de type.
00:01:55 :Si j'enlève ces annotations ici, et bien si on veut suivre les conventions,il ne faut pas mettre d'espace entre le nom du paramètre et la valeur.
00:02:02 :Ce n'est pas le cas avec les annotations de type, quand on rajoute des annotations de type ici,les conventions nous suggèrent de mettre un espace avant et après le symbole d'égalité.
00:02:11 :Donc là, maintenant qu'on a rajouté des valeurs par défaut, on peut cette fois-ci appeler notre fonction Add,et on n'aura pas d'erreur qui nous est retournée lorsqu'on exécute le script.
00:02:26 :Donc c'est sûr que ça commence à rallonger pas mal les lignes, mais au moins on a quelque chose de très explicite,on sait que A doit être de type nombre entier, B également, et que la valeur retour elle aussi doit être de type nombre entier.
00:02:37 :Il arrive également qu'on ait parfois besoin de retourner des types un peu plus complexes,donc je vais enlever ces paramètres ici, et à la place on va mettre un return avec une liste.
00:02:47 :Donc là on a enlevé tous les paramètres, et on veut juste indiquer que cette fonction va me retourner une liste.Donc là on pourrait très bien mettre liste comme type de retour, et ça fonctionnerait.
00:02:57 :Maintenant si jamais vous retournez des éléments à l'intérieur de cette liste, et que vous souhaitez spécifier le type de ces éléments,vous pouvez le spécifier dans l'annotation de type.
00:03:06 :Donc imaginons que l'on retourne des éléments de type nombre entier, donc par exemple 1, 2 et 3 ici,et bien on pourrait spécifier que cette liste va contenir des nombres entiers.
00:03:16 :Pour ça on met des crochets et on indique le type des éléments qui seront contenus à l'intérieur de la liste.Donc là si à la place de int je mets str, vous voyez qu'on a Visual Studio Code qui nous surligne cette ligne ici en rouge,pour nous indiquer que le type retourné n'est pas correspondant à ce que l'on a mis ici,
00:03:31 :puisque l'annotation de type nous indique qu'on doit retourner une liste de chaînes de caractère.Si je remets int cette fois-ci, on voit que l'erreur disparaît.
00:03:39 :Donc ça bien sûr vous pouvez le retrouver sur les paramètres,si je souhaite indiquer que ce paramètre doit récupérer une liste de nombre entier,je peux mettre cette même annotation de type ici sur mon paramètre,et là on voit que cette fois-ci c'est l'appel de ma fonction qui est surlignée en rouge.
00:03:54 :Il est également possible de rajouter des annotations de type sur une variable,donc ici je pourrais mettre a2.int égale 5 pour spécifier que cette variable doit être de type nombre entier.
00:04:04 :Vous allez me dire que dans ce cas-ci ça ne sert pas à grand chose,puisque Python peut détecter automatiquement le type de la variable.Si je mets par exemple des guillemets ici, et bien Python comprendra que c'est une chaîne de caractère.
00:04:15 :Donc quel est l'intérêt de spécifier ici le type de l'objet ?Et bien ça peut avoir un intérêt dans certains cas de figures très spécifiques.
00:04:22 :Par exemple ici vous voyez le code qui sert pour le serveur Discord de docstring.J'ai ici une fonction qui récupère les différents salons du serveur,et je spécifie pour chaque variable quel est le type de cette variable.
00:04:34 :Dans ce cas-ci je spécifie que cette variable ici est de type textchannel.Donc pourquoi on a besoin de faire ça ici ?Parce qu'en fait on utilise une fonction qui va pouvoir retourner différents types de variables.
00:04:46 :Donc là on utilise discord.utils.find, et find ça peut retourner plein de types d'objets différents.Donc là si j'enlève sur cette variable mon annotation de type,je n'aurai pas l'autocomplétion sur ce type d'objet.
00:04:58 :Donc si je fais channel announcement, que je mets un point,là vous voyez qu'on n'a aucune méthode qui nous est proposée.Si par contre je rajoute cette annotation de type sur ma variable,et que là je remets le point, cette fois-ci PyCharm va comprendre que cette variable est de type textchannel,
00:05:16 :et il va me proposer toutes les méthodes qui sont disponibles sur ces objets de type textchannel.Donc je vais pouvoir par exemple utiliser la méthode send pour envoyer un message dans ce salon.
00:05:26 :Donc dans ce cas-ci vous voyez que l'annotation de type sur la variable est très importante et très utile pour le développeur,pour me permettre d'avoir cette autocomplétion directement à l'intérieur de mon environnement de développement,puisque cette fonction find ici peut me retourner un type d'objet qui va varier.
00:05:42 :Vous remarquez par exemple ici que pour ce salon spécifique,je vais récupérer un salon qui va être d'un type différent, dans ce cas-ci voicechannel,et donc là encore cette annotation de type me permet de spécifier que cette variable ici sera différente par exemple de cette variable qui elle est de type textchannel.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.