Eu tenho uma longa linha de código que quero dividir entre várias linhas. O que eu uso e qual é a sintaxe?
Por exemplo, adicionando um monte de strings,
e = 'a' + 'b' + 'c' + 'd'
e tê-lo em duas linhas como esta:
e = 'a' + 'b' +
'c' + 'd'
Eu tenho uma longa linha de código que quero dividir entre várias linhas. O que eu uso e qual é a sintaxe?
Por exemplo, adicionando um monte de strings,
e = 'a' + 'b' + 'c' + 'd'
e tê-lo em duas linhas como esta:
e = 'a' + 'b' +
'c' + 'd'
Qual é a linha? Você pode apenas ter argumentos na próxima linha sem problemas:
a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5,
blahblah6, blahblah7)
Caso contrário, você pode fazer algo assim:
if a == True and \
b == False
Consulte o guia de estilo para obter mais informações.
Na sua linha de exemplo:
a = '1' + '2' + '3' + \
'4' + '5'
Ou:
a = ('1' + '2' + '3' +
'4' + '5')
Observe que o guia de estilo diz que é preferível usar a continuação implícita entre parênteses, mas nesse caso específico, apenas adicionar parênteses em torno de sua expressão é provavelmente o caminho errado.
Do PEP 8 - Guia de Estilo para Código Python :
O PEP8 agora recomenda a convenção oposta (para quebrar em operações binárias) usada pelos matemáticos e seus editores para melhorar a legibilidade.
O estilo de Donald Knuth de quebrar antes de um operador binário alinha os operadores verticalmente, reduzindo assim a carga de trabalho do olho ao determinar quais itens são adicionados e subtraídos.
Do PEP8: uma linha deve quebrar antes ou depois de um operador binário? :
[3]: The TeXBook, de Donald Knuth, páginas 195 e 196
fonte
The preferred way .. is by using Python's implied line continuation inside parentheses
é a mesma coisa queby wrapping expressions in parentheses
. Atualizei o exemploO perigo de usar uma barra invertida para finalizar uma linha é que, se um espaço em branco for adicionado após a barra invertida (o que, é claro, é muito difícil de ver), a barra invertida não estará mais fazendo o que você pensava.
Consulte Expressões idiomáticas e anti-expressões do Python (para Python 2 ou Python 3 ) para obter mais.
fonte
set list listchars=trail:·
no vim. :)Coloque um
\
no final da sua linha ou coloque a declaração em parênteses( .. )
. Da IBM :ou
fonte
Você pode quebrar linhas entre parênteses e chaves. Além disso, você pode anexar o caractere de barra invertida
\
a uma linha para quebrá-lo explicitamente:fonte
fonte
Pode não ser o caminho Pythonic, mas geralmente uso uma lista com a função join para escrever uma cadeia longa, como consultas SQL:
fonte
Retirado do Guia do Mochileiro das Trevas ( continuação de linha ):
Dito isto, aqui está um exemplo considerando várias importações (quando exceder os limites de linha, definidos no PEP-8 ), também aplicados a cadeias de caracteres em geral:
fonte
Se você deseja quebrar sua linha por causa de uma longa cadeia literal, pode quebrá-la em pedaços:
será substituído por
Saída para ambas as instruções de impressão:
a very long string
Observe os parênteses na afetação.
Observe também que dividir cadeias literais em pedaços permite usar o prefixo literal apenas em partes da cadeia:
fonte
Use o operador de continuação de linha, ou seja, "\"
Exemplos:
fonte