Recommandations pour la jonction de ligne implicite et explicite

9

Je voudrais connaître les recommandations concernant la jonction de ligne implicite par rapport à la jonction de ligne explicite en Python.

En particulier, privilégiez-vous une forme plutôt qu'une autre? Que recommandez-vous comme valeur par défaut générale? Quels critères avez-vous pour choisir l'un plutôt que l'autre, et si vous avez une préférence pour l'un, quand faites-vous des exceptions pour l'autre?

J'ai une réponse à l'esprit pour cette question qui reflète mes propres préjugés, mais avant de poster ma propre réponse, je voudrais savoir ce que les autres pensent ... et si vous pouvez avoir un meilleur ensemble de critères que ce que je pense, alors j'accepterai certainement votre réponse par rapport à la mienne.

Certaines des recommandations peuvent être généralisées à ce choix dans d'autres langages de programmation, mais mon propre biais est un peu plus fort en Python en raison de certaines fonctionnalités spécifiques au langage.J'aimerais donc connaître à la fois le raisonnement général et le raisonnement centré sur Python que vous pouvez avoir sur ce sujet.

Pour un certain contexte, la discussion s'est déroulée autour d'une question particulière sur le stackoverflow , mais j'ai pensé qu'il était plus approprié de déplacer la discussion ici comme une question pour éviter d'encombrer la réponse sur SO avec cette tangente car elle est sortie du sujet la question d'origine. Vous pouvez consulter cette question et ses réponses pour les exemples d'extraits de code qui ont déclenché la discussion.

Voici un exemple simplifié:

join_type = "explicit"
a = "%s line joining" \
    % (join_type)
# versus
join_type = "implicit"
b = ("%s line joining"
     % (join_type))
aculich
la source
Les questions de bonnes pratiques sont hors sujet pour la révision du code. J'ai migré votre question vers un meilleur site.
Winston Ewert
1
@WinstonEwert avant de poster, j'ai jeté un œil à la FAQ CodeReview et à la FAQ Programmeurs , et j'ai choisi CodeReview car il dit explicitement que les types de questions à poser incluent "Meilleures pratiques et utilisation des modèles de conception dans votre code". J'ai inclus une version simplifiée du code en question, alors comment est-ce hors sujet?
aculich
@WinstonEwert J'ai publié une question dans Meta sur la clarification de la FAQ CodeReview si vous souhaitez commenter là-bas.
aculich

Réponses:

8

Il existe un document de style de codage appelé PEP8. Il recommande de \<NL>ne pas utiliser l'endroit où les parenthèses peuvent être utilisées.

La façon préférée d'enrouler les longues lignes est d'utiliser la continuation de ligne implicite de Python entre parenthèses, crochets et accolades. Les longues lignes peuvent être coupées sur plusieurs lignes en enveloppant les expressions entre parenthèses. Ceux-ci doivent être utilisés de préférence à l'utilisation d'une barre oblique inverse pour la poursuite de la ligne. Assurez-vous d'indenter correctement la ligne continue. L'endroit préféré pour contourner un opérateur binaire est après l'opérateur, pas avant lui.

Texte intégral: http://www.python.org/dev/peps/pep-0008/ (section Disposition des codes)

Ce n'est pas obligatoire mais il définit des bonnes pratiques acceptables qui sont particulièrement utiles si vous avez plusieurs committers Python dans votre équipe.

Mischa Arefiev
la source
1

J'ai tendance à utiliser la jonction de ligne implicite car je la trouve plus lisible et le support des éditeurs est généralement meilleur en ce qui concerne l'indentation et la mise en évidence de l'expression entière grâce à la correspondance entre parenthèses.

jcollado
la source
0

Actuellement, je préférerais

join_type = "kiding"
a = "%s line joining" % (join_type)

B-))

.

J'ai tendance à préférer la jonction de lignes explicites car je n'aime pas l'encombrement des parens à la fin des expressions.
Mais j'aime la jonction implicite de lignes pour réduire la largeur occupée par l'écriture d'une chaîne.
Ensuite, dans certains cas, je suis gêné de ne pas mélanger les deux façons

eyquem
la source
1
Blague à part, je n'aime pas la jointure explicite car elle nécessite plus de frappe et il est difficile de garder toutes les barres obliques inversées soigneusement alignées lorsque le code est modifié.
martineau
apparemment @eyquem n'a jamais écrit de LISP ...
cowbert