Je suis un programmeur amateur qui écrit du python pour un projet de recherche dans mon université. J'ai besoin que mon code soit très lisible pour tous ceux qui pourraient travailler sur ce projet après moi, et en tant que tel, j'essaie de suivre le PEP 8. J'ai cependant rencontré un conflit de règles. Les lignes incriminées sont une définition de dictionnaire après une longue chaîne de boucles for et d'instructions if. Le problème est que, selon la convention, aucune ligne ne doit comporter plus de 79 caractères, alors que les continuations de lignes devraient être indentées de leur point de départ. Je vois trois options de ce qui pourrait logiquement être fait, mais je ne suis pas sûr de ce qui est le mieux.Style de code Pythonic
option 1: laisser des lignes offenser trop longtemps
def getIndexedData(directory): |
... |
... |
... |
# construct dictionary of images with peak locations |
peaks[image] = { |
'Xpixel': [float(x) for x in step[17][10][0].text.s|plit(' ')],
'Ypixel': [float(x) for x in step[17][10][1].text.s|plit(' ')]}
return peaks |
option 2: désindentation lignes continues
def getIndexedData(directory): |
... |
... |
... |
# construct dictionary of images with peak locations |
peaks[image] = { |
'Xpixel': [float(x) for x in step[17][10][0].text.split(' ')], |
'Ypixel': [float(x) for x in step[17][10][1].text.split(' ')]} |
return peaks |
Option 3: définitions fendus quelque part (pas sûr où)
def getIndexedData(directory): |
... |
... |
... |
# construct dictionary of images with peak locations |
peaks[image] = { |
'Xpixel': |
[float(x) for x in step[17][10][0].text.split(' ')],|
'Ypixel': |
[float(x) for x in step[17][10][1].text.split(' ')]}|
return peaks |
Je suis également ouvert à toute autre suggestion :)
Merci,
~ Aaron
Il existe un échange de pile de révision de code que vous pouvez publier au lieu d'ici. – BlackVegetable
La meilleure option peut très bien être "4: refactor, donc vous n'avez pas autant de niveaux d'indentation". – geoffspear
Si je me souviens bien, PEP 8 suggère 120 caractères. 80 est très très strict, certains diraient obsolètes. Quant à votre question - j'irais avec la deuxième option - mais mon opinion est aussi bonne que n'importe laquelle. Juste aller avec ce que vous ressentez le mieux. Cela ne va certainement pas rendre votre code illisible. En second lieu, rappelez-vous que PEP8 est juste des directives - parfois vous avez des exceptions ... – alfasin