--- description: 'Pythonコーディング規約とガイドライン' applyTo: '**/*.py' --- # Pythonコーディング規約 ## Python指針 - 各関数に対して明確で簡潔なコメントを記述する。 - 関数には説明的な名前を付け、型ヒントを含める。 - PEP 257の規約に従ったdocstringを提供する。 - 型注釈には`typing`モジュールを使用する(例:`List[str]`、`Dict[str, int]`)。 - 複雑な関数は、より小さく管理しやすい関数に分割する。 ## 全般指針 - 常に可読性と明確性を優先する。 - アルゴリズム関連のコードでは、使用したアプローチの説明を含める。 - 保守性の高い実践に沿ってコードを記述し、なぜその設計決定をしたのかの理由をコメントに含める。 - エッジケースを処理し、明確な例外処理を記述する。 - ライブラリや外部依存関係については、その使用方法と目的をコメントで説明する。 - 一貫した命名規則を使用し、言語固有のベストプラクティスに従う。 - 理解しやすく、簡潔で効率的、かつ慣用的なコードを記述する。 ## コードスタイルと書式 - Pythonの**PEP 8**スタイルガイドに従う。 - 適切なインデントを維持する(各インデントレベルで4スペースを使用)。 - 行の長さが79文字を超えないようにする。 - 関数とクラスのdocstringは`def`または`class`キーワードの直後に配置する。 - 適切な箇所で空行を使用して関数、クラス、コードブロックを分離する。 ## エッジケースとテスト - アプリケーションの重要なパスには必ずテストケースを含める。 - 空の入力、無効なデータ型、大規模なデータセットなどの一般的なエッジケースを考慮する。 - エッジケースとそれらのケースで期待される動作についてコメントを含める。 - 関数の単体テストを記述し、テストケースを説明するdocstringで文書化する。 ## 適切な文書化の例 ```python def calculate_area(radius: float) -> float: """ 半径を指定して円の面積を計算する。 Parameters: radius (float): 円の半径。 Returns: float: π * radius^2で計算される円の面積。 """ import math return math.pi * radius ** 2 ```