IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Y a-t-il une bonne pratique d'importation des modules ?


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2019
    Messages : 68
    Par défaut Y a-t-il une bonne pratique d'importation des modules ?
    Bonjour

    Je suis débutant en Python.

    Je recherche donc souvent de la documentation pour comprendre certaines fonctions et avec le temps et les exemples, je suis confronté à de multiples manières d'importer des modules.
    Pour prendre l'exemple de TKinter, je trouve :

    Importation "as tk" :
    Mais après, il faut mettre "tk." devant toutes les fonctions de tkinter...

    Importation complète d'un seul coup (enfin, c'est ce que je comprends) :
    Importation de modules de tkinter, un par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from tkinter import Button
    from tkinter import Entry
    from tkinter import StringVar
    Importation "as tk" avec importation de modules de tkinter, un par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import tkinter as tk
    from tkinter import filedialog
    from tkinter import messagebox
    Importation des modules de tkinter, un par un, avec une gestion des erreurs (enfin, c'est ce que je comprends) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try:
        from tkinter import Button
        from tkinter import Entry
        from tkinter import StringVar
        from tkinter import Tk
        from tkinter.filedialog import askopenfilename
    except ImportError:
        from Tkinter import Button
        from Tkinter import Entry
        from Tkinter import StringVar
        from Tkinter import Tk
        from tkFileDialog import askopenfilename
    Pourquoi y a-t-il autant de manières d'importer un module ?
    Moi, je suis resté avec :
    Parce qu'elle est plus courte.

    Mais s'il y a autant de manières d'importer un module, c'est que certaines techniques présentent probablement des avantages, non ?
    Sont-elles plus, sécurisées ? Plus efficaces ? Moins gourmandes en ressources ?

    Laquelle me conseillez-vous ?

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 746
    Par défaut
    Salut,

    Citation Envoyé par Yobeco Voir le message
    Laquelle me conseillez-vous ?
    S'il y a des méthodes différentes, c'est qu'elles répondent à différents besoins non techniques (fonctionnellement çà va marcher "pareil")

    "from tkinter import *" est très bien lorsqu'on écrit un petit script dans lequel il n'y a pas beaucoup de variables globales.

    Mais "import tkinter" va aider à la lecture: tout ce qui commence par tkinter. n'est pas définit dans le module courant.

    "import tkinter as tk" se remplace facilement par "import Tkinter as tk" et aide à faire tourner un script d'une version 3 sur une version 2 sans forcément avoir a changer une ligne de plus.

    A chaque fois, il y a un contexte et des raisons qui vont motiver le choix d'une solution par rapport à une autre.
    Sachant que dire "j'ai pris l'habitude de faire comme çà alors..." est un non-choix (puisque vous faites l'économie de réfléchir au pourquoi).

    Il en de même des "bonnes pratiques": un règle qu'on applique... sans avoir à réfléchir par soi-même (parfois nécessaire pour que ce ne soit pas le foutoir lorsqu'on bosse à plusieurs et fermer des discussions sans fin pour arbitrer).


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2019
    Messages : 68
    Par défaut
    Merci pour votre réponse

    Sachant que dire "j'ai pris l'habitude de faire comme çà alors..." est un non-choix (puisque vous faites l'économie de réfléchir au pourquoi).
    C'est exactement parce que je me sentais glisser de ce côté que je suis allé sur le forum... Je me suis rendu compte que je ne comprenais pas pourquoi utiliser telle syntaxe plutôt que telle autre...

    nécessaire pour que ce ne soit pas le foutoir lorsqu'on bosse à plusieurs et fermer des discussions sans fin pour arbitrer
    C'est ce que j'entendais par bon usage : "Règles arbitraires qui facilitent la vie de tous".

    Merci encore :-)

  4. #4
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2019
    Messages : 68
    Par défaut
    J'ai encore un doute sur cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import tkinter as tk
    from tkinter import filedialog
    from tkinter import messagebox
    Dans ce cas : la ligne "import tkinter as tk" ne devrait-elle pas importer tout les modules de "tkinter" ?
    Pourquoi faut-il encore importer les modules filedialog et messagebox puisqu'ils sont dans "tkinter" ?

    Ne sont-ils pas chargés ?

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 746
    Par défaut
    Salut,

    Citation Envoyé par Yobeco Voir le message
    Pourquoi faut-il encore importer les modules filedialog et messagebox puisqu'ils sont dans "tkinter" ?
    Vous devriez regarder ce que sont modules et packages sous Python.
    Et vous pourriez commencer à comprendre qu'il ne suffit pas de poser des scripts dans un répertoire pour qu'import fasse autre chose que ce qu'on l'a programmé pour...

    Ecrire une bibliothèque est un "projet" dont on va définir les livrables en fonction du contenu et de l'organisation de la construction.

    Il est clair que ceux qui ont fait ces choix ont eu leurs raisons de le faire. L'ignorance de certaines options n'est pas à exclure... et l'évolution des possibilités du langage depuis 25 ans font que si c'était à refaire, on pourrait faire autrement.

    Mais a un moment donné, il fallait faire des choix sinon on ne pouvait pas "construire" et "livrer"... Et maintenant, ben, l'histoire, le pourquoi s'est perdu (ou est peut être quelque part dans les archives d'Internet) mais n'a pas grande importance car çà fonctionne comme documenté et c'est "maintenable" par les développeurs qui ont pris la suite.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2019
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2019
    Messages : 68
    Par défaut
    Je vais étudier ça et je reviens :-)

    Merci !

Discussions similaires

  1. [Swing] Utiliser du HTML: Une bonne pratique ?
    Par dranzul dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/07/2011, 09h42
  2. Conseil pour une bonne pratique (héritage)
    Par coberle dans le forum C++
    Réponses: 5
    Dernier message: 27/07/2010, 12h12
  3. Réponses: 4
    Dernier message: 02/02/2010, 23h49
  4. Réponses: 4
    Dernier message: 07/10/2008, 14h16
  5. [Python] Est-ce une bonne idée d'utiliser des modules pour stocker des objets ?
    Par Neolander dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 05/04/2008, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo