bonjour,
y-a-t-il un equivalent en python pour la fonction REQUIRE_ONCE de PHP ?
En gros j'ai un énorme script, que je souhaite parceler en plusieur fichiers distincts améliorer la visibilité.
une idée de comment procéder au mieux ?
bonjour,
y-a-t-il un equivalent en python pour la fonction REQUIRE_ONCE de PHP ?
En gros j'ai un énorme script, que je souhaite parceler en plusieur fichiers distincts améliorer la visibilité.
une idée de comment procéder au mieux ?
Ben.... quand on ne connaît pas PHP, ce qui est mon cas car je ne connais que Python, on ne sait pas ce que fait REQUIRE_ONCE. Tu ne trouves pas que c’est embêtant ?
À cette première question précise sur une fonction, tu ajoutes une question en quelques mots sur un problème beaucoup plus vaste.
Ça fait une vaste problématique à laquelle répondre tout en ayant très peu de renseignements.
Ceci dit , il me semble qu’à la 2ième question, on peut avancer:
- avec une répartition de différentes activités dans des fonctions différentes qui seront mises dans des fichiers séparés , ces fonctions étant importées à loisir quand il le faudra dans un code plus général qui pilote l’ensemble des activités, il me semble que ça doit répondre au moins un peu à ton questionnement
- aborder l’écriture d’un programme en Python avec l’idée de transposer un programme déjà existant en PHP me semble , a priori, une détestable chose. Je te conseille de t’imprégner de l’esprit Python puis de penser Python pour écrire un code. Sinon, à mon avis, ce sera de la tambouille.
En effet c'est une question vague, donc les réponses ne peuvent être qu'aussi vagues...
Toutefois, d'une manière générale, l'esprit est de regrouper les fonctions et classes selon leur catégories (leur domaine d'action, ou l'aspect qu'elles traitent), donc le but est d'identifier les aspects généraux et les besoins que chacun requiert, trouver d'éventuels besoins commun, puis de créer un module pour un besoin (sauf si ça se résume à une ou deux fonctions...).
Ca n'est là que ma manière de voir les choses, il est probables que d'autres aient une approche différente (que je ne pense toutefois pas si éloignée).
Etrange, dans vos réponses j'ai l'impression de me faire rouspéter...
En gros, j'ai des centaines de lignes successives.
Je ne peux pas les fonctionnaliser, ce sont des traitements successifs à plusieurs variables communes.
En PHP, je peux prendre un groupe de lignes successifs, et les redistribuer dans un fichier à part et juste appeler/commenter ce fichier pour améliorer la visibilité du code et sa structure.
C'est le même principe qu'un include (voire import) mais avec une extrème liberté dans ce qui est déporté dans le fichier.
Tu n'auras pas cela en Python même si j'avoue que cette fonctionnalité de pHp me plaisait bien avant. Il va falloir utiliser des import.
En fait, plustôt que de reprendre un bout de code par ici, un autre par là, le mieux est de savoir pourquoi tu as besoin de ces lignes à divers endroits. Tu fabriques alors une classe ou un module qui fournit la fonctionnalité.
C'est une meilleure façon de faire que d'utiliser le require_once, et côté maintenance c'est très facile. Ce n'est que mon avis...
PS : oui tu t'es fait rouspété mais ils ont été gentils car ils t'ont dit pourquoi.![]()
bien-entendu j'avais pensé à une classe, une fonction, une méthode pour structurer tout cela mais ce n'est pas possible.
c'est juste un ensemble de ligne que je souhaite voire switcher/deswitcher visuellement pour faciliter le scrolling dans l'éditeur de code.
J'utilise Qanta (sous linux) et il ne permet pas le code folding à la volée, ça m'aurait bien aidé!
En ce qui me concerne, je ne rouspétais pas
Mais si c'est possible, enfin ... je ne me suis jamais vraiment servi de cette fonction, donc il n'est pas garanti que cela marche comme tu le souhaiterais, mais tu peux utiliser la fonction builtin execfile, elle ouvre un fichier et l'exécute comme un bloc de code normal...
Et pour le code folding, ben y'a eclipse avec pyDev, Geany, sous linux, je l'aime bien celui-là, simple, rapide, code folding, auto-complétion par rapport aux document ouverts & enregistrés, explorateur de code, permet de lancer l'exécution, et de de créer des templates, personnaliser la barre d'outils, le tout sans être une usine à gaz, sympathique.
Scénario type à éviter. Comme tu l'as remarqué toi même, un grand nombre de lignes d'affilées réduit horriblement la lisibilité.
Il faut séparer ton code en classes et éventuellement fonctions, sans quoi tu cours à la perte pour la maintenance.
Avoir 200 à 300 lignes de code pour une fonction est acceptable pour des langages de bas niveau. Dans le cas de php ou python, qui sont tous deux de très haut niveau, ce n'est absolument pas justifiable.
Partager