#1 Le 21/11/2023, à 00:10
- nulenubuntu
python:Fonction qui appelle une fonction qui appelle une autre fonct?
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....
Dernière modification par nulenubuntu (Le 21/11/2023, à 10:54)
Hors ligne
#2 Le 21/11/2023, à 20:49
- Nuliel
Re : python:Fonction qui appelle une fonction qui appelle une autre fonct?
Bonjour,
La question c'est "est ce que c'est une bonne pratique"? Si les exos font chacun 50 lignes, à mon sens ça mérite pas de séparer en fichiers, après si ça te fait des 5000 lignes au total par fichier, ça donne plus envie de séparer
Après ça dépend aussi si tu as besoin d'y revenir pour modifier ces exos.
Je pense que tu t'embêtes pour pas grand chose, du moment que ton code est propre/commenté, tout va bien
Il y a des règles pour du code propre, mais faut pas toujours les appliquer à la lettre (sinon il faudrait encore garder la règle des 80 colonnes par exemple, alors que tout éditeur qui se respecte a le word wrap)
Dernière modification par Nuliel (Le 21/11/2023, à 20:52)
Hors ligne
#3 Le 22/11/2023, à 16:04
- soshy
Re : python:Fonction qui appelle une fonction qui appelle une autre fonct?
Salut,
D'une façon générale cette façon de faire et découper en petites unités facilement compréhensible c'est très bien en programmation. Et tu n'en as pas parlé ici, mais d'une façon générale, organiser les sources dans des répertoires et sous répertoires c'est très bien aussi.
.
├── algebre
│ ├── exo1.py
│ ├── exo2.py
│ └── exo3.py
├── geometrie
│ ├── exo1.py
│ ├── exo2.py
│ └── exo3.py
├── main.py
└── proba
├── exo1.py
├── exo2.py
└── exo3.py
Donc pour répondre à ta question, c'est même une bonne pratique plutôt qu'une mauvaise. Après, en fonction des cas et contextes il faut aussi savoir doser et organiser. Avoir 30 fichiers avec 2 lignes par fichiers c'est pas forcément le mieux. La règle que j'ai tendance à appliquer c'est "Comment un nouveau qui débarque sera-t-il le moins perdu ?" (le nouveau ça peut être moi dans 2ans )
Dernière modification par soshy (Le 22/11/2023, à 16:13)
Hors ligne