Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2023, à 01: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, à 11:54)

Hors ligne

#2 Le 21/11/2023, à 21: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 smile
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 smile
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, à 21:52)

Hors ligne

#3 Le 22/11/2023, à 17: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 smile )

Dernière modification par soshy (Le 22/11/2023, à 17:13)

Hors ligne