- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Alors ce fichier init, je vous avais dit qu'on y reviendrait, puisqu'il a quand même son importance,surtout si vous êtes avec une version Python inférieure à la version 3.3.
00:00:09 :En effet, avec une version inférieure à 3.3, vous êtes obligé de mettre ce fichier à l'intérieur d'un packagepour que Python reconnaisse le dossier comme un package.
00:00:18 :Et donc ça, c'est vraiment obligatoire, même s'il est vide, avec les versions inférieures à 3.3.À partir de Python 3.3, vous n'êtes pas obligé d'avoir ce fichier dans un dossier pour que le dossier soit reconnu comme un package.
00:00:30 :Néanmoins, ça va quand même être pratique si jamais vous voulez faire des initialisationsà chaque fois que vous allez importer un package ou un module contenu à l'intérieur d'un package.
00:00:40 :Donc pour vous montrer ça ici, j'ai un script qui est en dehors de mon package utils, donc script.py,et à l'intérieur de utils, j'ai un fichier users.py, donc un module users,
00:00:51 :qui contient une seule fonction, getUsers, qui fait juste un print, donc qui récupère les utilisateurs.Donc pour l'instant, si je fais import utils et que j'exécute mon script, rien ne se passe.
00:01:02 :C'est normal, puisqu'on n'a rien ici à part la définition d'une fonction, et dans init non plus, je n'ai aucune ligne de code.Par contre ici, si je mets une ligne, donc par exemple le module a été initialisé, comme ceci,et bien quand je vais relancer mon script, cette fois-ci vous voyez que cette phrase s'affiche.
00:01:21 :Donc à chaque fois qu'on fait un import de mon package ou d'un module qui est contenu à l'intérieur de mon package,on va passer par ce fichier init. Donc ça peut être pratique pour plein de choses,
00:01:30 :comme par exemple ici ça me permet d'afficher quelque chose à chaque fois qu'un module est importé à partir du package,et on va aussi s'en servir pour faire des imports automatiques des modules qui sont contenus dans notre package.
00:01:42 :Donc pour l'instant, je vais enlever ce print ici, je vais sauvegarder donc mon script vide,et actuellement si j'importe mon package directement, je ne peux pas utiliser ce qui est à l'intérieur.
00:01:52 :Si j'essaie d'utiliser utils.users.getusers, je sauvegarde mon script et je le relance, vous voyez que j'ai une erreur,puisqu'il me dit que le module utils n'a pas d'attribut users.
00:02:03 :Donc si je voulais utiliser ça ici, il faudrait que je spécifie le module que je veux utiliser à l'intérieur de mon package utils.Donc là, si je relance mon script, j'ai cette fois-ci bien la phrase qui s'affiche, donc on récupère les utilisateurs.
00:02:16 :Ce que je peux faire à la place, c'est mettre cet import directement dans le fichier init.Donc j'importe dans mon init utils.users, et de ce fait, à l'intérieur de mon script, je peux importer uniquement utils,
00:02:29 :et en important le package, il va automatiquement exécuter cette ligne de code et donc importer utils.users à l'intérieur de mon script script.py ici.Donc je vais pouvoir utiliser utils.users et la fonction qui est définie à l'intérieur du module.
00:02:44 :Donc je sauvegarde, je réessaye, et là vous voyez que ça fonctionne de la même façon.Donc vous voyez qu'on peut vraiment commencer à manipuler la façon dont on travaille avec les modules.
00:02:55 :Le désavantage de faire comme ceci dans ce cas-là, c'est qu'en fait, ce n'est pas très clair,puisqu'on fait uniquement un import du package et on peut ensuite utiliser directement utils.users.
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.