Як мені відформатувати довгу URL-адресу в коментарі на python і при цьому відповідати PEP8


85

У блочному коментарі я хочу посилатися на URL-адресу довжиною понад 80 символів.

Яка найкраща умова для відображення цієї URL-адреси?

Я знаю, що bit.ly - це варіант, але сама URL-адреса є описовою. Скоротити його, а потім мати вкладений коментар із описом скороченої URL-адреси здається безглуздим рішенням.

Відповіді:


77

Не ламайте URL-адресу:

# A Foolish Consistency is the Hobgoblin of Little Minds [1]
# [1]: http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds

5
Я згоден; однак, PyCharm не дозволяє легко ігнорувати (не поповнюючи ваш код потворними посиланнями "# noinspection LongLine" (і подібними) повсюдно. Я думаю, що більша проблема полягає в тому, що формат RST має обмеження неможливості мають розрив рядка (який не відображається) всередині URL-адреси

4
Відповідь не дає відповіді, як дотримуватися вимог, тому, якщо у вас є літер, він залишається із попередженнями.
Ефрен

4
@jfs, тому відповідь насправді повинна бути такою: "довгий рядок у цьому випадку відповідає PEP8"
Ефрен

2
@Efren це саме моя відповідь: * "як я повинен форматувати .. і бути сумісним з pep-8" * -> "не ламати URL-адресу"
jfs

2
Я щойно виявив клацання control !! Ось чому саме тому ви не хочете зламати URL-адресу в коментарі.
Боб Штейн

69

З PEP8

Але найголовніше: знайте, коли бути непослідовним - іноді керівництво стилем просто не застосовується. Якщо ви сумніваєтесь, використовуйте найкраще судження. Перегляньте інші приклади і вирішіть, що виглядає найкраще. І не соромтеся запитувати!

Дві вагомі причини порушити певне правило:

  • Застосування правила зробить код менш читабельним, навіть для тих, хто звик читати код, який відповідає правилам.

Особисто я б скористався цією порадою, а краще залишив би повний описовий URL у своєму коментарі для людей.


46

Ви можете використовувати # noqaкінець рядка, щоб зупинити PEP8 / Flake8 від запуску цієї перевірки. Це дозволено PEP8 через:

Особливі випадки недостатньо спеціальні, щоб порушити правила.


3
Елегантний. Я використовую pyflakes у Vim і не здійснюю змін, поки не поверне нульові попередження з узгодженого набору правил (у нашому випадку вимога маккабе є слабшим, але не обмежується 80 рядками). Найкоротший спосіб сказати колегам: я не розділяв багаторядкові, бо немає сенсу це робити.
Пітер Хост,

4
Дякую @Sardathrion, мав би набрати більше голосів, оскільки це насправді сприяє практичному рішенню.
ezdazuzena

22

Я б сказав, залиште ...

PEP20 :

Особливі випадки недостатньо спеціальні, щоб порушити правила.

Хоча практичність перевершує чистоту.

Практичніше мати можливість швидко скопіювати / вставити URL-адресу, а потім видалити розриви під час вставлення у браузер.


15

Якщо ви використовуєте flake8:

"""
long-url: http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url-in-a-python-comment-and-still-be-pep8-compliant
"""  # noqa

-2

Ви використовуєте скорочувач URL-адрес, такий як google, тому з цього:

http://www.python.org/dev/peps/pep-0008/#a-foolish-consistentcy-is-the-hobgoblin-of-little-minds

ти отримуєш:

http://goo.gl/93ZLQ


9
Звичайно, ризик полягає в тому, що укорочувач посилань зникає, і ми не можемо знати посилання. ArchiveTeam (очолювана керівництвом, пов’язаним з Archive.org) докладає цілих зусиль для збереження скорочувачів посилань ...
Ахмед Фасіх,

1
І не тільки це, але й оригінальна URL-адреса містить інформацію, що це таке. Скорочувачі URL втрачають цю інформацію.
Жульєн

-5

Моїм варіантом буде:

URL = ('http://stackoverflow.com/questions/10739843/'
       'how-should-i-format-a-long-url-in-a-python-'
       'comment-and-still-be-pep8-compliant')

3
Занадто боляче копіювати вставку таким чином.
Кел Солаар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.