2012-03-27 4 views
1

Dois-je toujours suivre la règle de la longueur de ligne maximale de 79 caractères lors du codage en python. Si oui alors quand utiliser enter et \ pour le saut de ligne.longueur de ligne maximale en python

par exemple,

qy = MyModel.objects.filter(name='abcd', modified_on__range= 
             (now-delta_6, now),type=1) \ 
             .select_related('Author') 

J'utilise emacs pour mon codage python. alors quand j'utilise entrer pour breacking ligne parfois je peux utiliser onglet pour l'indentation et parfois je dois utiliser \ pour indentation

alors quelle est la meilleure façon de le faire.

Merci

+1

Avez-vous lu [PEP 8] (http://www.python.org/dev/peps/pep-0008/)? – delnan

+0

ouais. toujours pas clair dessus. – pythonhmmm

+1

Vous êtes en train de casser des colonnes très arbitraires ... Pourquoi ne cassez-vous pas à la virgule, par exemple? Aussi, voyant que cette ligne est si longue, pourquoi appelez-vous réellement 'select_related' dans cette même ligne? –

Répondre

7

Une longueur maximale de 79 caractères est recommandé par PEP 8, et je ne trouve pas habituellement trop difficile à suivre cette recommandation.

Toujours en conformité avec PEP 8, j'essaie de compter sur la continuation de ligne implicite entre parenthèses. L'exemple donné peut facilement être divisé en deux déclarations:

qy = MyModel.objects.filter(
    name='abcd', modified_on__range=(now - delta_6, now),type=1) 
qy = qy.select_related('Author') 

Si votre code effectue beaucoup de chainage des méthodes, vous préférez peut-être ajouter une paire de parens pour obtenir continuation de ligne implicite:

qy = (MyModel.objects 
     .filter(name='abcd', modified_on__range=(now - delta_6, now),type=1) 
     .select_related('Author')) 

Cela place chaque méthode enchaînée sur une ligne qui lui est propre, ce qui facilite la visualisation des étapes en un coup d'œil.

2

Je réécrire votre code comme celui-ci si vous voulez suivre les PEP 8 directives:

qy = MyModel.objects.filter(name='abcd', 
          modified_on__range=(now-delta_6, now), 
          type=1).select_related('Author') 

Quant à savoir si vous devez suivant la longueur de ligne maximale suggérée dans le PEP 8, qui est vraiment à vous. Le PEP 8 est conçu pour améliorer la lisibilité du code Python, et la longueur de ligne de 79 caractères est compatible avec certains périphériques à largeur limitée et pour une visualisation facile du code côte à côte. J'ai des écrans assez larges donc même si j'essaie de suivre PEP 8 la plupart du temps, c'est une règle que je vais ignorer si je sens que la séparation de la ligne diminue la lisibilité.

Questions connexes