Более 79 символов в строке с комментарием
Что я должен делать, когда у меня есть, например, эта строка:full_path = "https://www.google.cz/search?q=" + website_keywords # google link url
Flake8 сообщает мне, что количество символов в строке выше 79 макс. длина. Что мне следует делать с комментариями, когда в PEP 8 говорится, что встроенный комментарий должен находиться в одной строке с определенным утверждением.
2 ответа
Обычно хорошо ставить такой комментарий над строкой:
# google link url
full_path = "https://www.google.cz/search?q=" + website_keywords
Кстати, на момент написания статьи, в PEP 8 сказано, что ограничение строки для комментариев составляет всего 72.
Для длинных длинных блоков текста с меньшим количеством структурных ограничений (строк документации или комментариев) длина строки должна быть ограничена 72 символами.
...
Некоторые команды предпочитают более длинную линию. Для кода, поддерживаемого исключительно или в первую очередь командой, которая может прийти к соглашению по этому вопросу, можно увеличить номинальную длину строки с 80 до 100 символов (эффективно увеличив максимальную длину до 99 символов), при условии, что комментарии и строки документов по-прежнему переносятся. на 72 символов.
Не ясно, относится ли это к встроенным комментариям, поскольку они не являются "длинными блоками текста", но в PEP 8 также говорится:
Встроенные комментарии не нужны и фактически отвлекают, если они утверждают очевидное.
Вы можете удалить этот комментарий вообще. Тот факт, что это URL-адрес Google, является очевидным, если учесть, что в строке содержится "google".
Есть один случай, когда комментарий действительно должен быть в одной строке с тем, о чем он комментирует - комментарии типа PEP-484. В этом случае вы используете скобки:
full_path = (
"https://www.google.cz/search?q=" + website_keywords
) # type: str
Я считаю, что более питонический подход может быть следующим:
from urllib.parse import urlencode
def format_url(website_keywords):
"""Return google link url."""
parameters = urlencode({"q": website_keywords}, True)
root_url = "https://www.google.cz/search"
return "%s/%s" % (root_url, parameters)