Pythonコメントで長いURLをフォーマットし、PEP8に準拠するにはどうすればよいですか?


85

ブロックコメントで、80文字を超えるURLを参照したいと思います。

この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
答えは準拠する方法に答えていないので、リンターを持っている場合は、警告が表示されたままになります。
エフレン2018

4
@jfsなので、答えは実際には次のようになります。「この場合、長い行はPEP8に準拠しています」
Efren

2
@Efrenそれはまさに私の答えです:*「どのようにフォーマットすればよいですか..そしてpep-8に準拠する必要があります」*->「URLを壊さないでください」
jfs 2018

2
私はちょうどcontrol-clickを発見しました!! そのため、コメントでURLを分割したくないのです。
ボブ・スタイン

69

PEP8から

しかし、最も重要なことは、いつ矛盾するかを知ることです。スタイルガイドが適用されない場合があります。疑わしい場合は、最善の判断を下してください。他の例を見て、何が最もよく見えるかを決定します。そして、遠慮なく質問してください!

特定のルールを破る2つの理由:

  • ルールを適用すると、ルールに従ったコードを読むことに慣れている人でも、コードが読みにくくなります。

個人的に、私はそのアドバイスを使用し、むしろ人々のためにあなたのコメントに完全な説明的なURLを残します。


46

# noqa行の終わりにあるを使用して、PEP8 / Flake8がそのチェックを実行しないようにすることができます。これは、PEP8によって次の方法で許可されます。

特別な場合は、規則を破るほど特別なものではありません。


3
エレガント。私はVimでpyflakesを使用しており、合意された一連のルールから警告がゼロになるまで変更をコミットしません(この場合、maccabeの要件は緩いですが、80行の制限はありません)。同僚に伝える最短の方法:意味がないため、複数行を分割しませんでした。
ピーターホスト

4
@Sardathrionに感謝します。実際に実用的な解決策に貢献するため、投票数を増やす必要があります。
ezdazuzena 2016年

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短縮サービスを使用しているので、これから:

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

あなたが得る:

http://goo.gl/93ZLQ


9
もちろん、リンク短縮サービスが消えて、リンクを知る方法がないというリスクがあります。ArchiveTeam(Archive.orgと提携しているリーダーシップが主導)は、リンク短縮機能の保存に全力を
注いでい

1
そしてそれだけでなく、元のURLにはそれが何であるかに関する情報が含まれています。URL短縮サービスはその情報を失います。
JulienChastang19年

-5

私のオプションは次のとおりです。

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

3
この方法で使用可能な方法でペーストをコピーするのは非常に苦痛です。
Kel Solaar 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.