问题标签 [pep8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12059 浏览

python - 我应该如何编写很长的代码行?

如果我有很长的代码行,是否可以在下一行继续,例如:

0 投票
6 回答
3312 浏览

python - PEP8 和 PyQt,如何协调函数大小写?

我开始在一些项目中使用 PyQt,但我遇到了文体困境。PyQt 的函数使用驼峰式大小写,但我更喜欢遵循的 PEP8 说函数名称使用下划线和全部小写。

所以一方面,我可以继续遵循 PEP8,这意味着我的代码将对驼峰式大小写和下划线函数进行混合函数调用,甚至我的类也会有混合函数名,因为我需要重载诸如 mousePressEvent 之类的函数. 或者,我可以打破 PEP8 并以一致性的名义对我所有的函数名采用驼峰式大小写。

我意识到这是主观的,这确实是我个人更喜欢的,但我喜欢听听其他人关于他们所做的事情以及他们为什么选择这样做的原因。

0 投票
3 回答
1375 浏览

python - PEP 8 规则的现状?

所有 PEP 8 规则仍​​然有效吗?

有没有过时的?

没有比这个更解释性的备忘单

0 投票
14 回答
20989 浏览

python - 您忽略了哪些 PEP 8 指南,您坚持哪些?

多年来,我编写的 Python 越多,我就越发现自己同意大多数准则,尽管出于自己的原因,我一直有意地破坏了一些准则。

我很想知道 PEP 8(或其他 PEP 也可能)中人们虔诚地坚持的内容以及原因,以及人们觉得不方便或不足的地方。

在我的情况下(以及在一般工作中),我们只偏离了少数几件事:

  • 下划线分隔的小写名称,我可以看到它的重点,因为它始终保持一致,但我们倾向于使用 lowerCamelCase,即使它偶尔会引入一些不一致(例如部分或错误大写的首字母缩写词和以下单词,它们是往往是一时兴起的电话)。主要是因为我们经常使用的几乎全部 API 都使用 camelCase(一些上,一些下),并且由于某种原因,我发现它更容易阅读,并且倾向于保留下划线作为分隔标记或规定的修饰/模糊。

  • 我仍然无法让自己按照 PEP 规定的对象内部的方式来分隔事物。new 和 init 我倾向于在类的正下方没有空行,因为我总是想在类名和 args 那里阅读它们,这些方法有助于类中相同的功能范围(比如 init、get 和 set相同的属性或属性集)我只分开一个空格,我喜欢类之间的三个空格,以及我不会在该对象的映射中精神聚合的方法之间的两个空格。同样,这纯粹是为了代码的视觉冲击力和可读性。我发现流控制中非常紧凑的内容以及方法和对象之间的这种间距始终将我的眼睛准确地引导到我希望它在代码被停放几个月后重新阅读的地方。

  • 相反,我坚持的一些事情让我在阅读其他方式时发疯,是制表符而不是空格(尤其是当我们使用的某些应用程序内编辑器实际上没有制表符替换功能时,这会极大地污染代码库原型阶段)。

  • 诸如导入之类的东西的顺序,以及什么导入,全局变量等。当这些文件混合或无序时,它真的让我对那些有大量导入的文件感到厌烦。

  • 语句中的空格,尤其是当人们使用制表符并尝试在 var 名称中使用不同长度的行对齐分配操作时(似乎没有办法说服那些这样做的人,看起来 excel 的代码并不整洁;)) .

  • 以及控制块内的间距,特别是当我在同一个流控制块内看到明显的随机间距,然后在对象内为方法使用类似数量的间距时。在我开始阅读该死的东西之前,我不得不编辑这些内容。

所以,这些都是我的,也是我“违反” PEP 背后的原因(有些是共享的,有些是同事不赞成的)。我很想知道其他 Pythonistas 在这些方面做什么和不做什么。

0 投票
9 回答
4775 浏览

python - 我不遵循 PEP 8 并在 79 个字符处删减我的台词,这很糟糕吗?

我认为每个 Python 代码都见过PEP 8。让我印象深刻的部分是:

我坐在宽屏显示器上,在屏幕上进行编码。我没有在终端中编码,也不打算在终端中编码。因此,我对字符行限制没有任何问题。

有多少人真正遵循这个限制?如果您不在 80 个字符限制的终端中编码,您是否仍然遵循它?我不遵守它是不是很糟糕?

我讨厌这个限制是如何与 Python 的“样式指南”分开的 >.<

0 投票
2 回答
3525 浏览

python - 在注释和文档字符串中使用较短的文本宽度

来自强大的PEP 8

[P]lease 将所有行限制为最多 79 个字符。对于流动的长文本块(文档字符串或注释),建议将长度限制为 72 个字符。

在 Vim 中编辑 Python 代码时,我将 my 设置textwidth为 79,当我达到字符限制时,Vim 会自动为我包装长行 Python 代码。但在注释和文档字符串中,我需要将文本换成 72 个字符。

当我在评论或文档字符串中时,有什么方法可以让 Vim 自动设置textwidth为 72,并在我完成后将其设置回来?

0 投票
6 回答
10281 浏览

python - 奇怪的 PEP8 建议将布尔值与 True 或 False 进行比较

在 Python PEP 8结束时,我正在阅读:

  • 不要使用以下方法将布尔值与 True 或 False 进行比较==

当布尔值是时,我对这个建议没有任何问题True,但在检查时听起来很奇怪False

如果我想知道变量greeting 是否为False,为什么不写以下内容?

如果我这样写if not greeting:的话,就会和上面的说法有很大不同的意思。如果问候语是无怎么办?如果它是一个空字符串怎么办?这个 PEP 8 建议是否意味着存储布尔值的变量应该只包含 True 或 False 并且这些变量应该避免 None ?

在我看来,它看起来像是来自其他具有静态类型的语言的推荐,并且不适合 Python,至少与 False 相比。

顺便说一句,为什么被if greeting is True:描述为比if greeting == True:?我们是否也应该明白那if greeting is False:也更糟if greeting == False:

0 投票
8 回答
45995 浏览

python - 如何在 Python 中打破一行链式方法?

我有以下代码行(不要责怪命名约定,它们不是我的):

我不喜欢它的样子(不太可读),但在这种情况下我没有更好的主意将行限制为 79 个字符。有没有更好的方法来打破它(最好没有反斜杠)?

0 投票
2 回答
1321 浏览

python - 如何使用 PyFlakes 使 Vim 错误列表永久化?

我想使用 pep8 作为我的 makeprg,以检查并修复我的代码符合PEP8(Python 代码的样式指南)

我使用了命令:set makeprg=pep8\ --repeat\ %,当我执行:make它时,错误列表被填充,我可以使用:cn,:cp:copen导航并在 QuickFix 窗口中查看错误列表。

但是,一旦我在 python 源文件中更改某些内容,错误列表就会变为空,QuickFix 窗口会丢失其内容,我无法再浏览列表。

我怀疑这是由 PyFlakes 引起的,这是一个 Vim 扩展,可以即时突出显示 Python 错误。

我该如何解决?

0 投票
3 回答
870 浏览

python - Python 核心库和 PEP8

我试图理解为什么 Python 被认为是一门美丽的语言。我被引导到 PEP 8 的美丽......这很奇怪。事实上它说你可以使用任何你想要的约定,只要保持一致......突然我在核心库中发现了一些奇怪的东西:

以下函数是 Python 3.1 中的新函数。这里使用了 PEP 8 约定的哪一部分?

所以我的问题是:核心库中是否使用了 PEP 8?为什么会这样?
是否存在与 PHP 相同的情况,我不能只记住函数的名称,因为有可能所有的方法来编写名称?

为什么核心库中没有使用 PEP 8,即使是新功能?