Более 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)
Другие вопросы по тегам