Als je een PEP8-compatibele code checker gebruikt, zoals flake8 in Python, krijg je de volgende foutmelding als een regel langer is dan 80 karakters.E501 line too long
Ik zal je laten zien hoe je een lange string van meer dan 80 karakters, zoals een URL, kunt opdelen in meerdere regels code.
- Negeer regeleindes met backslashes (spaties)
- Regeleinden kunnen vrij tussen haakjes worden geplaatst
De textwrap module is ook nuttig als je lange reeksen wil uitvoeren en weergeven door ze te omwikkelen of weg te laten.
Indien je een method chain hebt die langer is dan een enkele lijn van karakters, in plaats van een lange string, kan je de lijn in de code ook afbreken.
Negeer regeleindes met backslashes (spaties)
In Python is de backslash (\) een voortzettingsteken, en wanneer deze aan het eind van een regel wordt geplaatst, worden volgende regeleindes genegeerd en wordt aangenomen dat de regel wordt voortgezet.
n = 1 + 2 \
+ 3
print(n)
# 6
Ook wanneer meerdere string-literals achter elkaar worden geschreven, worden ze aaneengeschakeld om één string te vormen, zoals hieronder wordt getoond.
s = 'aaa' 'bbb'
print(s)
# aaabbb
Door de twee te combineren kan een lange string in meerdere regels code worden geschreven, zoals hieronder wordt getoond.
s = 'https://wikipedia.org/wiki/'\
'%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
'%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'
print(s)
# https://wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
Merk op dat alleen string-literals (ingesloten door ' of “”) kunnen worden samengevoegd, en dat variabelen die strings bevatten een fout zullen opleveren.
s_var = 'xxx'
# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax
Om variabelen aan elkaar te koppelen of variabelen aan string-literalen, gebruik je de + operator.
s = 'aaa' + s_var + 'bbb'
print(s)
# aaaxxxbbb
Zelfs indien gescheiden door een backslash (\), is de + operator vereist om variabelen aan elkaar te koppelen.
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
+ s_var\
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Regeleinden kunnen vrij tussen haakjes worden geplaatst
In Python kun je regels vrij breken binnen de volgende haakjes. U kunt deze regel gebruiken om lange reeksen tekst tussen haakjes te zetten.
()
{}
[]
Merk op dat de volgende haakjes een betekenis hebben.
{} = set
[] = list
Gebruik daarom ronde haakjes () als u een lange tekenreeks op meerdere regels schrijft.
Nogmaals, gebruikmakend van het feit dat meerdere strings aan elkaar kunnen worden gekoppeld om één enkele string te vormen, kunnen we het volgende schrijven.
s = ('https://wikipedia.org/wiki/'
'%E3%83%97%E3%83%AD%E3%82%B0%E3%83'
'%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E')
print(s)
# https://wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
Net als in het voorbeeld met de backslash, is de + operator vereist wanneer variabelen worden opgenomen.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb