Is het mogelijk om een ​​lange rij te breken naar meerdere lijnen in Python? [DUPLICEER]

Net als C, kunt u een lange rij breken in meerdere korte lijnen. Maar in python , als ik dit doe, zal er een streepje zijn. . Is het mogelijk?


Antwoord 1, Autoriteit 100%

van PEP 8 – Stijlgids voor Python Code :

De gewenste manier van wikkelen van lange lijnen is door de impliciete lijn van Python te gebruiken
Voortzetting binnen haakjes, beugels en beugels. Indien nodig, jij
kan een extra paar haakjes rond een uitdrukking toevoegen, maar soms
Het gebruik van een backslash ziet er beter uit. Zorg ervoor dat je de voortdurende lijn inspringt
passend.

Voorbeeld van impliciete lijnvoortzetting:

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

Op het onderwerp van lijn breekt rond een binaire operator, zegt het:

Tientallen jaren was de aanbevolen stijl om te breken na binaire operatoren.
Maar dit kan de leesbaarheid op twee manieren pijn doen: de exploitanten hebben de neiging om te verspreiden in verschillende kolommen op het scherm, en elke operator wordt weggenomen van zijn operand en op de vorige regel.

In Python-code is het toegestaan ​​om te breken vóór of na een binaire operator, zolang het verdrag lokaal consistent is. Voor de stijl van Nieuwe Code Knuth (Line breekt vóór de operator) voorgesteld.

Voorbeeld van expliciete lijnvoortzetting:

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

Antwoord 2, Autoriteit 33%

Er is meer dan één manier om het te doen.

1). Een lange verklaring:

>>> def print_something():
         print 'This is a really long line,', \
               'but we can make it across multiple lines.'

2). Haakjes gebruiken:

>>> def print_something():
        print ('Wow, this also works?',
               'I never knew!')

3). \opnieuw gebruiken:

>>> x = 10
>>> if x == 10 or x > 0 or \
       x < 100:
       print 'True'

Citeer PEP8:

De geprefereerde manier om lang te wikkelen
lijnen is met behulp van Python’s impliciete
voortzetting van de regel tussen haakjes, haakjes en accolades. Indien nodig,
je kunt een extra paar haakjes rond een uitdrukking toevoegen, maar
soms ziet het gebruik van een backslash er beter uit. Zorg ervoor dat u de vervolgregel inspringt
op gepaste wijze. De geprefereerde plaats om een binair getal te doorbreken
operator is nade operator, niet ervoor.


Antwoord 3, autoriteit 5%

Als u een lange tekenreeks aan een variabele wilt toewijzen, kunt u dat als volgt doen:

net_weights_pathname = (
    '/home/acgtyrant/BigDatas/'
    'model_configs/lenet_iter_10000.caffemodel')

Voeg geen komma toe, anders krijg je een tuple die veel strings bevat!


Antwoord 4, autoriteit 3%

Het werkt ook in Python:

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

Antwoord 5, autoriteit 2%

Als u doorlopende tekst (bijvoorbeeld een zoekopdracht) probeert in te voeren, plaats dan geen komma’s aan het einde van de regel, anders krijgt u een lijst met tekenreeksen in plaats van één lange tekenreeks:

queryText= "SELECT * FROM TABLE1 AS T1"\
"JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\
"JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\
"WHERE SOMETHING BETWEEN <WHATEVER> AND <WHATEVER ELSE>"\
"ORDER BY WHATEVERS DESC"

zo’n beetje.

Er is een opmerking als deze van acgtyrant, sorry, niet gezien. :/


Antwoord 6

DB-gerelateerde code ziet er gemakkelijker uit in meerdere regels, omsloten door een paar drievoudige aanhalingstekens:

SQL = """SELECT
            id, 
            fld_1, 
            fld_2, 
            fld_3, 
            ...... 
         FROM some_tbl"""

dan de volgende gigantische lange regel:

SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"

Antwoord 7

Voor zover ik weet, kan het worden gedaan. Python heeft een impliciete voortzetting van de regel (tussen haakjes, haakjes en tekenreeksen) voor tekenreeksen met drie aanhalingstekens ("""like this""") en het inspringen van vervolgregels is niet belangrijk. Voor meer informatie kun je dit artikelover lexicale analyse van python lezen. org.

Other episodes