Est-il possible de diviser une longue ligne en plusieurs lignes en Python ?

Comme en C, vous pouvez couper une longue ligne en plusieurs lignes courtes. Mais en [Python][1], si je fais cela, il y aura une erreur d'indentation... Est-ce possible ?

[1] : http://en.wikipedia.org/wiki/Python_%28programming_language%29

Solution

Extrait de [PEP 8 - Style Guide for Python Code][1] :

La meilleure façon d'envelopper les longues lignes est d'utiliser la ligne implicite de Python. continuation à l'intérieur des parenthèses, des crochets et des accolades. Si nécessaire, vous Si nécessaire, vous pouvez ajouter une paire de parenthèses supplémentaire autour d'une expression, mais parfois, il est préférable d'utiliser une barre oblique inverse. l'utilisation d'une barre oblique inversée est parfois préférable. Veillez à indenter la ligne continue de manière appropriée.

Exemple de continuation de ligne implicite :

a = some_function(
    '1' + '2' + '3' - '4')

En ce qui concerne les sauts de ligne autour d'un opérateur binaire, il est dit plus loin:-

Pendant des dizaines d'années, il était recommandé de faire un saut de ligne après les opérateurs binaires. Mais cela peut nuire à la lisibilité de deux façons : les opérateurs ont tendance à être dispersés sur différentes colonnes de l'écran et chaque opérateur est éloigné de son opérande et déplacé sur la ligne précédente.

Dans le code Python, il est permis de faire une pause avant ou après un opérateur binaire, pour autant que la convention soit cohérente au niveau local. Pour le nouveau code, le style de Knuth (sauts de ligne avant l'opérateur) est suggéré.

Exemple de continuation de ligne explicite :

a = '1'   \
    + '2' \
    + '3' \
    - '4'

[1] : http://www.python.org/dev/peps/pep-0008/

Commentaires (3)

Cela fonctionne aussi en Python :

>>> 1+\
      2+\
3
6
>>> (1+
          2+
 3)
6
Commentaires (0)

Pour autant que je sache, c'est possible. Python a une continuation de ligne implicite (à l'intérieur des parenthèses, des crochets et des chaînes de caractères) pour les chaînes de caractères à triple citation ("""comme ceci""") et l'indentation des lignes de continuation n'est pas importante. Pour plus d'informations, vous pouvez lire [cet][1] article sur l'analyse lexicale, de python.org.

[1] : http://docs.python.org/reference/lexical_analysis.html

Commentaires (1)