如何在python注释中格式化长网址,并且仍符合PEP8


82

在块注释中,我想引用一个长度超过80个字符的URL。

显示此URL的首选约定是什么?

我知道bit.ly是一个选项,但URL本身是描述性的。对其进行缩短,然后使用嵌套的注释描述缩短的URL,这似乎是一个糟糕的解决方案。

Answers:


76

不要破坏网址:

# 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格式的局限性在于无法网址内有一个换行符(未显示)

4
答案并没有回答如何合规,因此,如果您有短绒,它仍会带有警告。
伊夫伦

4
@jfs,因此答案应该是:“在这种情况下,一长串符合PEP8标准”
Efren

2
@Efren正是我的回答:*“我应该如何格式化..并使其符合pep-8规范” *->“不要破坏网址”
jfs

2
我刚发现按下控制键!现在,这就是为什么您不想在评论中断开URL的原因。
鲍勃·斯坦

68

PEP8

但最重要的是:知道何时不一致-有时样式指南就不适用。如有疑问,请运用最佳判断。查看其他示例并确定最合适的方法。不要犹豫,问!

打破特定规则的两个很好的理由:

  • 应用规则会降低代码的可读性,即使对于那些习惯于阅读遵循规则的代码的人而言。

就个人而言,我会使用该建议,而不是将完整的描述性URL留给您的评论对象。


45

您可以使用该# noqa行末尾的来停止PEP8 / Flake8运行该检查。PEP8通过以下方式允许这样做:

特殊情况不足以违反规则。


3
优雅。我在Vim中使用pyflakes,直到它从约定的规则集返回零警告(在我们的情况下,maccabe要求较宽松,但不超过80行限制)之前,它都不会提交更改,而是将其提交。告诉同事的最快捷方法:我没有拆分多行,因为这样做没有任何意义。
彼得主持人

4
感谢@Sardathrion,应该获得更多投票,因为它实际上是一种实用的解决方案。
ezdazuzena

22

我会说离开...

PEP20

特殊情况不足以违反规则。

尽管实用性胜过纯度。

能够更快速地复制/粘贴网址,然后在粘贴到浏览器中时删除换行符更为实用。


14

如果您使用的是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

9
当然,风险是链接缩短器消失了,我们无法知道链接。ArchiveTeam(由Archive.org的领导层领导)全力以赴,以节省链接缩短器……
Ahmed Fasih

1
不仅如此,原始URL还具有与它有关的信息。URL缩短器会丢失该信息。
朱利安·查斯唐

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.