2010-12-13 28 views
3

Je commence un nouveau projet Python et je souhaite suivre les conventions standard le plus fidèlement possible. J'ai lu que les déclarations d'importation devraient venir en premier, par exemple. Mais je n'ai trouvé aucune convention pour des choses comme mettre toutes les définitions de fonctions avant ou après toutes les définitions de classe. Y a-t-il des conventions pour des choses comme ça? Ou est-ce que tout le monde n'organise généralement que des choses comme les définitions de fonctions et de classes dans un ordre qui semble avoir du sens?Organisation du fichier source Python

+0

Merci pour l'aide. Les deux réponses étaient bonnes, alors j'ai essayé de voter pour les deux, mais ça ne m'a pas permis. J'ai donc choisi l'une des réponses comme la meilleure, en retournant une pièce de monnaie. – Dan

Répondre

0

Non, il n'y a pas de convention pour l'organisation des fonctions et des classes. Cependant, il existe quelques directives de base qui amélioreront le flux de votre source et la rendront plus logique pour les lecteurs:

  • Document. Quoi que vous fassiez, assurez-vous que les utilisations (et dans certains cas, la mise en œuvre) des classes et des fonctions sont décrites en anglais)
  • Regroupez les choses qui se ressemblent. Deux fonctions qui effectuent des fonctions similaires? Mets les ensemble.
  • Utilisez votre bon sens. Si une classe en étend une autre, la classe de base devrait venir en premier. Si une fonction prend une instance d'une classe que vous avez définie, assurez-vous que la définition de classe vient en premier.

Pour des exemples sur la façon dont cela est fait, ne cherchez pas plus loin que la bibliothèque standard Python. Les fichiers sources de certains modules devraient vous donner une idée de l'organisation de la source en Python.

5

pep8 est le guide de style Python: http://www.python.org/dev/peps/pep-0008/

Les importations viennent en haut du fichier, bien que les importations au niveau de la méthode sont autorisés.

Il n'y a pas de classement spécifique pour les classes et les fonctions. Utilisez ce qui a du sens.