2012-04-10 2 views
0

spalten möchte ich Python-Code über zwei Zeilen verteilt, ist mein Code so etwas wie:den Code mit großen Variablennamen über zwei Zeilen in Python

if long_named_three_d_array[first_dimension][second_dimension][third_dimension] == somevalue: 
    //dosomething 

Ich möchte oben, wenn die Bedingung über zwei Zeilen aufgeteilt.

Bitte helfen. Vielen Dank.

+0

Warum nicht stattdessen kleinere Variablen verwenden? – Makoto

+0

http://stackoverflow.com/questions/53162/how-can-i-do-a-line-break-line-continuation-in-python –

+0

@JoshBleecherSnyder: Ich habe es schon angeschaut. Das hilft nicht. – riship89

Antwort

1

Sie die Fortsetzung Zeilenumbruch Zeichen verwenden können, \.

if long_named_three_d_array[first_dimension] \ 
    [second_dimension]\ 
    [third_dimension] == somevalue: 
# Rest of code here, obviously properly indented in for the if. 
+0

danke, ich suche nach etwas ähnlich, aber es funktioniert nicht für mich. Kannst du das nochmal bestätigen? – riship89

+2

@ hrishikeshp19 Stellen Sie sicher, dass Sie nach dem \ -Zeichen keine abschließenden Leerzeichen haben. –

+3

Die Folge "Schrägstrich" ist böse, weil 1) alle Leerzeichen nach dem Schrägstrich es brechen, wie @MichaelAnderson bemerkt hat, und auch 2) alle ** Kommentare ** nach dem Schrägstrich wird es brechen. Aus diesem Grund empfiehlt Python Style Guide, PEP 8, dass Sie die Backslash-Syntax für die Zeilenfortsetzung nicht verwenden. –

5

In Python kann die LHS geklammert werden.

>>> a = {} 
>>> a[1] = {} 
>>> a[1][2] = {} 
>>> (a[1][2] 
... [3]) = '' 
>>> a 
{1: {2: {3: ''}}} 
>>> (b) = 2 
>>> b 
2 

Dies bedeutet, dass Sie Ihre Linie als schreiben können

if (long_named_three_d_array[first_dimension] 
    [second_dimension] 
    [third_dimension]) == somevalue: 
# Rest of code here, obviously properly indented in for the if. 
1

Ein Ansatz wäre eine temporäre Variable zu verwenden:

tmp = long_named_three_d_array[first_dimension][second_dimension][third_dimension] 
if tmp == somevalue: 
    //dosomething 

obwohl kürzer, noch beschreibende Variablenbezeichner eine bessere Wahl wäre, wenn das möglich ist.