Question Comment organiser le code source Python? [fermé]


Je commence à utiliser Python (il est grand temps que j'essaie de le faire), et je recherche quelques bonnes pratiques.

Mon premier projet est une file d'attente qui exécute des expériences en ligne de commande dans plusieurs threads. Je commence à avoir un très long main.py fichier, et je voudrais le casser. En général, je recherche: Comment les programmeurs Python organisent-ils plusieurs fichiers sources? Y a-t-il une structure particulière qui fonctionne pour vous?

Mes questions spécifiques incluent:

  1. Chaque classe doit-elle figurer dans un fichier séparé?
  2. Comment dois-je organiser les tests unitaires relatifs au code source?
  3. Où devrais-je mettre des commentaires de doc, en particulier ceux pour le fonctionnement en ligne de commande?
  4. Si j'utilise plusieurs répertoires, comment puis-je importer des classes entre eux?

Je peux probablement tirer certaines de mes propres conclusions ici par essais et erreurs, mais je préfère partir de quelque chose bien.


89
2017-12-04 20:00


origine


Réponses:


le article Eric a souligné to est génial car il couvre les détails de l'organisation de grandes bases de code Python.

Si vous avez atterri ici depuis Google et que vous essayez de savoir comment diviser un fichier source volumineux en plusieurs fichiers plus faciles à gérer, je résumerai brièvement le processus.

Supposons que vous ayez tout dans un fichier appelé main.py:

  • Créez un autre fichier source dans le même dossier (appelons le nôtre utils.py pour cet exemple)
  • Déplacez les classes, fonctions, instructions, etc. dont vous avez besoin main.py dans utils.py
  • Dans main.py ajouter une seule ligne en haut: import utils

Conceptuellement, cela consiste à créer un nouveau module appelé utils dans un autre fichier source. Vous pouvez ensuite l'importer là où vous en avez besoin.


26
2018-03-27 11:23



La façon dont vous devriez organiser votre code et vos tests est exactement la même que pour toute langue OO.

Réponses de la façon dont je le fais. Ce n'est peut-être pas juste mais ça marche pour moi

  1. Dépend de la façon dont votre fonctionnalité est divisée. Pour mon application python principale, j'ai un fichier avec des classes pour les points d'entrée, puis des paquets de différentes fonctionnalités
  2. J'utilise PyDev pour éclipse et je l'organise comme pour Java.
>  Workspace
>     |
>     |-Src
>     |   |-Package1
>     |   |-Package2
>     |   |-main.py
>     |-Test
>         |-TestPackage1
>         |-TestPackage2
  1. Utilisez DocString partout pour suivre tout
  2. Après s’être assuré que les __init__.py les fichiers sont dans les dossiers. c'est juste un cas simple de from module import class

4
2017-12-04 20:22