何年にもわたって Python を書けば書くほど、ほとんどのガイドラインに同意するようになりましたが、私自身の理由で一貫して意図的に一部を破っています。
私は、PEP 8 (あるいは他の PEP もそうかもしれません) で、人々が宗教的に固執するものとその理由、そして人々が不便または不十分だと思うものを知りたいと思っています。
私の場合 (そして一般的に職場で)、逸脱しているものはほんの一握りです。
アンダースコアで区切られた小文字の名前は、間違いなく一貫しているため、その要点は理解できますが、時折いくつかの不一致が発生する場合でも、lowerCamelCase を使用する傾向があります (部分的または誤った大文字の頭字語や次の単語など)。多くの場合、その場しのぎの呼び出しまで)。ほとんどの場合、私たちが日常的に使用するほぼすべての API がキャメルケース (一部は上位、一部は下位) を使用しており、何らかの理由で読みやすく、アンダースコアを分離トークンまたは規定のマングリング/不明瞭化として予約する傾向があるためです。
私はまだ、PEP がオブジェクトの内部で規定している方法で物事を配置することができません。new と init クラスの同じ範囲の機能に貢献するメソッド (init、get、set など) をクラス名と引数と共にすぐに読みたいので、空白行を入れずにクラスのすぐ下に残す傾向があります。同じ属性または一連の属性の)私は単一のスペースだけ離れており、クラス間の3つのスペースとメソッド間の2つのスペースが好きで、そのオブジェクトのマップに精神的に集約しません。これも、純粋にコードの視覚的な影響と読みやすさのためです。フロー制御内の非常にコンパクトなコンテンツと、メソッドとオブジェクト間のこの種の間隔により、コードが保留されてから数か月後に再読み取りすると、一貫して目的の場所に正確に目を向けることができます。
代わりに、別の方法で書かれたものを読むと頭がおかしくなるのは、スペースではなくタブです(特に、使用するアプリ内エディターの一部にタブ置換機能が実際にはなく、コードベースの汚染に大きく貢献している場合)試作段階)。
インポートなどの順序、インポート内容、グローバルなど。インポートが大量にあるファイルが混同されていたり、順序が間違っていたりすると、本当に気が遠くなります。
ステートメント内の空白、特に人々がタブを使用し、変数名の長さが異なる行にまたがって代入操作を整列させようとする場合 (そして、Excel のように見えるコードがきちんとしていないことをそれを行う人に納得させる方法はないようです ;) ) .
また、制御ブロック内の間隔、特に同じフロー制御ブロック内で明らかにランダムな間隔が表示され、メソッドのオブジェクト内で同様の量の間隔が使用されていることがわかります。いまいましいものを読み始める前に、それらを編集せざるを得ません。
つまり、これらは私のものであり、私の PEP の「違反」の背後にある理由です (共有されたものもあれば、同僚に眉をひそめられたものもあります)。他のPythonistasがそれらの点で何をして何をしていないかを読むことに非常に興味があります.