Bonjour les zesteux,
Je suis débutant en python, mais pas en programmation en général; je viens du Java, du PHP et du C++. Vous m'excuserez si ce que je demande est complètement idiot, mais j'essaie justement de me mettre à python.
Jusqu'à maintenant, je ne suis pas allé au-delà de petits scripts qui font tout au plus quelques centaines de lignes, mais je me rends compte que pour concrétiser une de mes petites idées qui me trottent dans la tête, j'ai intérêt à le faire en python plutôt que Java ou C++ (Java c'est trop lourd pour l'utilisateur lambda, et en C++ je vais me faire ch#"% inutilement pour gérer convenablement du XML, du JSON et du réseau, là où python propose probablement déjà tout ce qu'il faut de manière très simple) Et en plus c'est un bon moyen de monter d'un niveau dans ce langage que je maîtrise pour l'instant que très moyennement.
Comment s'organise-t-on en général dans un projet python ?
Je suis partisan de l'organisation 1 classe = 1 fichier. Problème, en python il semblerait que 1 fichier = 1 module et ce n'est pas ce que je voudrais.
Je n'ai pas envie que le début de tous mes fichiers commencent par 50 lignes de from truc import Truc
ou ìmport truc, chose, bidule, machin, blabla, bipbip, ...... interminable......, ou encore devoir systématiquement instancier en version longue
monTruc = truc.Truc()`.
Ca me paraît étrange que ce soit la norme, et ça me paraît tout aussi idiot qu'il y ait autant de modules que de classes ou autrement dit qu'il n'y ait qu'une classe par module.
Je me doute bien qu'on ne met pas non plus la totalité du contenu d'un module dans un seul fichier et qu'on est obligé de faire comme ça, ce n'est pas pratique et pas viable pour un projet qui fera bien plus que quelques centaines de lignes.
Je dois avoir raté un élément évident, mais quoi ? Comment procède-t-on normalement ?
Est-ce qu'il existe une combine pour que quand j'écrive truc = Truc()
il charge automatiquement truc.py (un genre d'autoload) ? OU bien qu'il charge d'emblée tous les fichiers .py du répertoire (tant pis pour les performances) ?
Ou encore, à défaut d'autre chose, qu'il y ait une fonction require ou include qui ne plante pas lamentablement en cas d'inclusions cycliques ?
Quelle est la bonne manière de faire ? La manière, disons, « standard » ?
Le but final n'est pas de faire une bibliothèque de fonctions, mais bien un programme concret.
Merci pour vos réponses