2013-01-19 17 views
12

W C++ lubię rozbijać linie kodu, jeśli są zbyt długie, lub jeśli jest to instrukcja if, jeśli istnieje wiele sprawdzeń.Przełamywanie linii Pythona na wiele linii?

if (x == 10 && y < 20 && name == "hi" && obj1 != null) 
    // Do things 

// vs 

if (x == 10 
    && y < 20 
    && name == "hi" 
    && obj1 != null) 
{ 
    // Do things 
} 

AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, mAppliedEffects[inEffectIDHash], inTagNameHash); 
// vs 
AddAndSpawnParticleSystem(inParticleEffectName, inEffectIDHash, overrideParticleSystems, 
    mAppliedEffects[inEffectIDHash], inTagNameHash); 

W języku Python bloki kodu są definiowane przez tabulatory, a nie przez ";" na końcu linii

if number > 5 and number < 15: 
    print "1" 

Czy w pythonie są możliwe różne linie? jak ...

if number > 5 
and number < 15: 
    print "1" 

Nie sądzę, że to możliwe, ale byłoby fajnie!

+6

Cóż ... 'jeśli 5 Ryan

+2

\\' na końcu bloków kod linii – Kabie

+2

nie są zdefiniowane przez zakładkach (lub stała liczba spacji), są one zdefiniowane przez dowolne wcięcie. Poza tym to nie jest twój problem, twój problem polega na tym, że newlines zazwyczaj kończą stwierdzenia. – delnan

Odpowiedz

27

przewodnik Styl mówi:

preferowany sposób zawijania długich linii jest za pomocą Pythona dorozumiany linia kontynuacji wewnątrz nawiasów, uchwyty i szelki. Długie linie mogą być przerywane na wiele linii poprzez zawijanie wyrażeń w nawiasach. Powinny być one używane zamiast używania odwrotnego ukośnika do kontynuacji linii. Upewnij się, że linia ciągła jest odpowiednio wcięta. Preferowanym miejscem do rozbicia binarnego operatora jest operator, a nie przed nim.

Metoda 1: Używanie nawiasów

if (number > 5 and 
     number < 15): 
    print "1" 

Metoda 2: Korzystanie backslash

if number > 5 and \ 
number < 15: 
    print "1" 

Metoda 3: Użycie backslash + wcięcie dla lepszej czytelności

if number > 5 and \ 
     number < 15: 
    print "1" 
+0

Czasami warto spojrzeć na kodzie w jednej linii: 'jeśli liczba> 5 a i numer <15:' –

+0

Updated moja odpowiedź ... – ATOzTOA

+0

+1 jednak chciałbym mieć pokusę, aby przesunąć rozkaz dookoła, więc preferowany przykład nawiasu jest pokazany jako pierwszy, a następnie alternatywa również poprawna składnia pokazana po. –

1

można umieścić \ symbol ucieczki end-of-line:

if number > 5 \ 
    and number < 15: 
    print '1' 

w niektórych przypadkach (na przykład w nawiasach) trzeba żadnych specjalnych symboli uciec końca linii.

Zobacz więcej documentation on python lexical analysis:

Koniec linii logicznej jest reprezentowany przez token NEWLINE. Instrukcje nie mogą przekraczać granic linii logicznych, z wyjątkiem sytuacji, gdy NEWLINE jest dozwolony przez składnię (np. Między instrukcjami w złożonych instrukcjach ). Linia logiczna jest zbudowana z jednej lub większej liczby fizycznych linii , postępując według jawnych lub niejawnych reguł łączenia linii.

9

Można złamać wyrażenia w wielu liniach, jeśli jesteś surr ound to z nawiasami:

if (x == 10 
    and y < 20 
    and name == "hi" 
    and obj1 is not None): 
    # do something 

To samo wsporników lub klamrami wykorzystywanych do tworzenia listy lub słownika:

mylist = [1, 2, 3, 4, 
      5, 6, 7, 8] 

mydict = {1: "a", 2: "b", 
      3: "c", 4: "d"} 
+1

+1, to zawsze wygląda dużo ładniej niż ewakuacje EOL. (Ale '! = Null' nie jest dość Python':) ') – Ryan

+0

@minitech: Całkiem po prawej, ustalony w przybliżeniu równoważny –