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

Python Discussion :

fonction qui appelle une fonction qui appelle une autre fonction


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Points : 35
    Points
    35
    Par défaut fonction qui appelle une fonction qui appelle une autre fonction
    Bonjour

    je suis en train de créer un script en python qui présente divers exercices de maths.

    les exercices sont ecrits en python car j'utilse un script pour générer des données.
    les exercices sont séparés en 3 catégories : algèbre, géométrie, proba.

    pour l'instant, j'ai ca:
    un script main.py qui:
    genère ces exercices en faisant appel à 3 fonctions :
    algebre_gen(), geo_gen() et proba_gen()

    ces 3 fonctions sont ecrisr dans des scripts à parts:
    algebre_gen.py, geo_gen.py et proba_gen.py
    ainsi dans main.py, j'importe ces scripts comme des modules pour ensuite appeler ces fonctions.


    dans des scripts algebre_gen.py, geo_gen.py et proba_gen.py, j'ai ainsi mes exercices.
    Mais comme j'ai une quinzaine d'exercices par thème, chacun des scrips algebre_gen.py, geo_gen.py et proba_gen.py devient super longs et c'est compliqué de retrouver un exo si je veux changer les données..

    j'aimerai faire en sorte que chaque exercice soit ecrit dans un script python à part.

    je prends l'exemple avec les exos de geometrie.
    j'ai 15 scripts pythons pour des exos de géométrie.

    le script geo_gen.py appelle ces 15 scripts comme des fonctions (au préalable, j'ai importé ces 15 scripts dans geo_gen.py)
    puis le script main.py appelle le script geo_gen.py qui appelle alors les 15 scripts pour mes exos?

    le script geo_gen.py est plus court et si je veux changer les données d'un exo, son script est vite trouvé.

    mais en faisant ca, le fait que le script main.py appelle le script geo_gen.py qui appelle alors les 15 scripts pour mes exos : est-ce une bonne pratique ou faut eviter?
    je rappelle que si je vais au bout de ma logique, script main.py appelle le script geo_gen.py, algebre_gen.py et proba_gen.py, qui ensuite appellent chacun 15 scripts d'exo....

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    mais en faisant ca, le fait que le script main.py appelle le script geo_gen.py qui appelle alors les 15 scripts pour mes exos : est-ce une bonne pratique ou faut eviter?
    On appelle une fonction et on importe un script (qui s'appelle alors module).

    La bonne pratique sera celle qui vous permettra de vous y retrouver dans votre rangement (car c'est un rangement).

    Donc essayer de mettre "ensemble" les objets qui tournent autour des mêmes sujets/domaines. Sachant que mettre ensemble peut se réaliser en mettant pleins de choses dans un même script/module et/ou créer un répertoire/package qui va regrouper ce tas de modules avec un __init__.py qui fera les imports qui vont bien pour que ça s'utilise comme si ça sortait d'un seul module.

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

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    donc je peux le faire alors.

    par rapport à cette question de rangement.
    mon arbo dossier est comme ca:

    mon main.py ets à la racine d'undossier app.
    j'ai un dossier utils om j'ai es fonctions génériques pour mon script.
    ensuite pour la partie uiquemement dédiée à la génération des exos, j'hésite entre ca:

    cas1

    dossier app
    _____main.py
    ________dossier utils
    _____________fonc1.py
    _____________fonc2.py
    ________dossier INIT_QUESTION_MACRO
    _____________algebre_gen.py
    _____________geo_gen.py
    _____________proba_gen.py
    ________dossier INIT_QUESTION_DETAIL
    _____________algebre.exo1.py
    _____________algebre.exo2.py
    _____________ geo.exo1.py
    _____________geo.exo2.py
    _____________proba.exo1.py
    _____________ proba.exo2.py
    _____________proba.exo3.py

    les 3 fonctions algebre_gen(), geo_gen() et proba_gen() sont dans un dossier INIT_QUESTION_MACRO placé à la racine de app
    puis les fonctions appelées par ces 3 fonctions sont dans un autre dossier INIT_QUESTION_DETAIL aussi placé à la racine de app.



    cas2

    dossier app
    ____main.py
    ____dossier utils
    ___________fonc1.py
    ___________fonc2.py
    ____dossier INIT
    ___________INIT QUESTION_MACRO
    _________________algebre_gen.py
    _________________geo_gen.py
    _________________proba_gen.py
    ___________INIT_QUESTION_DETAIL
    _________________algebre.exo1.py
    _________________ algebre.exo2.py
    _________________geo.exo1.py
    _________________geo.exo2.py
    _________________ proba.exo1.py
    _________________proba.exo2.py
    _________________proba.exo3.py

    les 3 fonctions algebre_gen(), geo_gen() et proba_gen() sont dans un dossier INIT_QUESTION_MACRO qui est lui meme dans le dossier INIT
    puis les fonctions appelées par ces 3 fonctions sont dans un autre dossier INIT_QUESTION_DETAIL qui est aussi lui est lui meme dans le dossier INIT

    je fais ca car la génération des exos est quelquehose que je fais au déut su script mais ce n'est pas le coeur du scrtip. les fonctions utilsiées par le coeur du sont dans le dossier utils.


    ya une regle qui dit que le cas1 ou ou cas 2 est mieux?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    ya une regle qui dit que le cas1 ou ou cas 2 est mieux?
    Je répète: c'est du rangement.
    Donc à partir du moment où les 2 fonctionnent, le choix sera fait sur la base de critères non techniques.
    C'est (éventuellement) à vous de dire le pourquoi avoir choisi 1 plutôt que 2 (ou le contraire).

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2011, 13h53
  2. Réponses: 4
    Dernier message: 27/08/2011, 01h02
  3. Appeler une fonction qui se trouve dans une autre fonction
    Par waxouse dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 11/05/2009, 16h28
  4. Appel à une fonction qui se trouve sur une autre page
    Par pierrot10 dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2007, 12h36
  5. appel d'une fonction qui est dans une autre page
    Par guppy33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/08/2006, 12h05

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