Czy możliwe jest rozbicie długiej linii na wiele linii w Pythonie?

Podobnie jak w C, możesz złamać długą linię na wiele krótkich linii. Ale w Python, jeśli to zrobię, pojawi się błąd wcięcia... Czy to możliwe?

Rozwiązanie

Z PEP 8 - Style Guide for Python Code:

Preferowanym sposobem zawijania długich linii jest użycie Python's implied line kontynuacji wewnątrz nawiasów, klamer i nawiasów klamrowych. Jeśli to konieczne, możesz można dodać dodatkową parę nawiasów wokół wyrażenia, ale czasami lepiej wygląda użycie odwrotnego ukośnika. Upewnij się, że kontynuowana linia ma odpowiednie wcięcie odpowiednio.

Przykład niejawnej kontynuacji linii:

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

Na temat przerw w linii wokół operatora binarnego, mówi się dalej:-.

Przez dziesięciolecia zalecanym stylem było robienie przerw po operatorach binarnych. Ale to może zaszkodzić czytelności na dwa sposoby: operatorzy mają tendencję do rozpraszania się po różnych kolumnach ekranu, a każdy operator jest odsuwany od swojego operandu na poprzednią linię.

W kodzie Pythona dopuszczalne jest przerwanie przed lub po operatorze binarnym, o ile konwencja ta jest spójna lokalnie. Dla nowego kodu sugerowany jest styl Knuth'a (łamanie linii przed operatorem).

Przykład wyraźnej kontynuacji linii:

a = '1'   \
    + '2' \
    + '3' \
    - '4'
Komentarze (3)

Działa to również w Pythonie:

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

O ile mi wiadomo, można to zrobić. Python ma niejawną kontynuację linii (wewnątrz nawiasów, klamer i łańcuchów) dla potrójnie cytowanych łańcuchów ("""like this"""), a wcięcie linii kontynuacji nie jest ważne. Aby uzyskać więcej informacji, możesz chcieć przeczytać ten artykuł o analizie leksykalnej, z python.org.

Komentarze (1)