多年来,我编写的 Python 越多,我就越发现自己同意大多数准则,尽管出于自己的原因,我一直有意地破坏了一些准则。
我很想知道 PEP 8(或其他 PEP 也可能)中人们虔诚地坚持的内容以及原因,以及人们觉得不方便或不足的地方。
在我的情况下(以及在一般工作中),我们只偏离了少数几件事:
下划线分隔的小写名称,我可以看到它的重点,因为它始终保持一致,但我们倾向于使用 lowerCamelCase,即使它偶尔会引入一些不一致(例如部分或错误大写的首字母缩写词和以下单词,它们是往往是一时兴起的电话)。主要是因为我们经常使用的几乎全部 API 都使用 camelCase(一些上,一些下),并且由于某种原因,我发现它更容易阅读,并且倾向于保留下划线作为分隔标记或规定的修饰/模糊。
我仍然无法让自己按照 PEP 规定的对象内部的方式来分隔事物。new 和 init 我倾向于在类的正下方没有空行,因为我总是想在类名和 args 那里阅读它们,这些方法有助于类中相同的功能范围(比如 init、get 和 set相同的属性或属性集)我只分开一个空格,我喜欢类之间的三个空格,以及我不会在该对象的映射中精神聚合的方法之间的两个空格。同样,这纯粹是为了代码的视觉冲击力和可读性。我发现流控制中非常紧凑的内容以及方法和对象之间的这种间距始终将我的眼睛准确地引导到我希望它在代码被停放几个月后重新阅读的地方。
相反,我坚持的一些事情让我在阅读其他方式时发疯,是制表符而不是空格(尤其是当我们使用的某些应用程序内编辑器实际上没有制表符替换功能时,这会极大地污染代码库原型阶段)。
诸如导入之类的东西的顺序,以及什么导入,全局变量等。当这些文件混合或无序时,它真的让我对那些有大量导入的文件感到厌烦。
语句中的空格,尤其是当人们使用制表符并尝试在 var 名称中使用不同长度的行对齐分配操作时(似乎没有办法说服那些这样做的人,看起来 excel 的代码并不整洁;)) .
以及控制块内的间距,特别是当我在同一个流控制块内看到明显的随机间距,然后在对象内为方法使用类似数量的间距时。在我开始阅读该死的东西之前,我不得不编辑这些内容。
所以,这些都是我的,也是我“违反” PEP 背后的原因(有些是共享的,有些是同事不赞成的)。我很想知道其他 Pythonistas 在这些方面做什么和不做什么。