ProgrammingPython チームリード

Python における命名規則 (PEP8 など) について教えてください。これらの規則を守らないことがコード作業にどのように影響を与えるのか具体例を挙げて説明してください。

Hintsage AIアシスタントで面接を突破

回答。

Python はコーディングスタイルに関するいくつかの規則があり、その中で最も重要なのは PEP8 です:

  • 変数/関数の名前: lower_case_with_underscores
  • クラスの名前: CapitalizedCamelCase
  • 定数: ALL_CAPS
  • 行の長さ: 最大 79 文字
  • インデント: スペース 4 つ (タブではない!)
  • 演算子の周りのスペース: a = b + c
  • インポート: 各インポートは別々の行にし、まず標準ライブラリ、その後サードパーティ、最後にローカルをインポート

PEP8 に従うことは、チーム作業を容易にし、可読性を向上させ、参入のハードルを下げ、自動化テストを簡易化します。


トリックのある質問。

PEP8 では、1文字の変数名を使用しないことが推奨されています。しかし、リスト内包表記や lambda では短い名前を使用してもよいのでしょうか?なぜですか?

回答: 基本的に短い反復処理のためには (例えば、リスト内包表記のマーカー変数として x, i, j を使用することは許可されています)、短い表現を複雑にしないために 1文字の名前を使用することが許可されています。複雑な表現には意味のある名前を付ける方が良いです。

例:

# 許可される: squares = [x**2 for x in numbers] # より良い: squares = [number**2 for number in numbers]

このテーマの細かい点を知らないための実際のエラーの例。


ストーリー 1

銀行のプロジェクトでは、関数やパラメータの名前が異なる規則 (CamelCase, snake_case, ハイフン) で命名されていることに直面しました。新しいチームメンバーは常にどこで名前が使用されているか混乱していて、衝突を解消し変数名を変更するのにほぼ 2 週間かかりました。


ストーリー 2

データエンジニアリングのプロジェクトでは、インデントが守られず、タブとスペースが混在していました。これにより、さまざまな開発環境で SyntaxError が発生し、一部の開発者は余分なスペースを探すのに何時間も費やしました。


ストーリー 3

大規模な教育ポータルで、短い名前と長い名前の変数が混在していました。たとえば、ログを処理する関数が l() と名付けられ、ログインハンドラーは long と名付けられ、これが多くの IDE でのナビゲーションに多くの時間を要し、リスト内の l 要素を使用する際に混乱を引き起こしました。