Pythonのコーディング規約:PEPとPEP 8(スタイルガイド)の基本ルール

Pythonは「読みやすさ」を重視して設計された言語です。誰が書いても同じような、読みやすいコードになるように、Pythonコミュニティには**「PEP 8(ペップエイト)」**と呼ばれる標準的なコーディング規約(スタイルガイド)が存在します。

この記事では、PEPとは何か、そしてPEP 8で定められている主要なルールについて解説します。

目次

PEPとは

PEPは Python Enhancement Proposal(Python拡張提案)の略称です。

Pythonという言語に対して、新しい機能の追加や仕様変更、開発プロセスなどを提案・管理するための公式文書群です。

すべてのPEPには番号が振られており、それぞれ役割があります。

  • PEP 1: PEPの目的とガイドライン
  • PEP 8: Pythonコードのスタイルガイド
  • PEP 20: Pythonの禅(設計思想)
  • PEP 257: Docstring(ドキュメント文字列)の書き方

PEP 8とは

数あるPEPの中で、最も頻繁に参照されるのが PEP 8 です。これは「Pythonコードをどのように書くべきか」という見た目(スタイル)に関するルールブックです。

標準ライブラリのコードはこのルールに従って書かれており、世界中のPython開発者も基本的にはこのルールに従うことが推奨されています。

PEP 8の主要なルール

PEP 8には多くのルールがありますが、特に重要で日常的に意識すべきものを紹介します。

1. インデント

  • スペース4つを使用します。
  • タブ文字は使用しません
# 良い例
def calculate_total(price, tax):
    if price > 0:
        return price * (1 + tax)

# 悪い例 (スペース2つやタブの使用)
def calculate_total(price, tax):
  if price > 0:
   return price * (1 + tax)

2. 行の長さ

  • 1行は最大79文字までとします(ドキュメントやコメントは72文字)。
  • 長くなる場合は、括弧 () を使って改行し、インデントを揃えます。
# 良い例
total_value = (item_price_a + item_price_b + item_price_c +
               item_price_d + item_price_e)

3. 空白(スペース)の使い方

  • カンマ ,、コロン :、セミコロン ;直後にはスペースを入れます。直前には入れません。
  • 二項演算子(=, +, -, *, == など)の前後にはスペースを1つ入れます。
# 良い例
x = 10
y = x + 5
numbers = [1, 2, 3]

# 悪い例
x=10
y = x+5
numbers = [1,2,3]

ただし、関数の引数指定(キーワード引数)の = にはスペースを入れません。

# 良い例
def connect(host="localhost", port=8080):
    pass

# 悪い例
def connect(host = "localhost", port = 8080):
    pass

4. 命名規則(ネーミング)

変数や関数、クラスの名前の付け方にもルールがあります。

対象ルール
変数名小文字 + アンダースコア (Snake Case)user_name, item_count
関数名小文字 + アンダースコア (Snake Case)calculate_tax, get_data
メソッド名小文字 + アンダースコア (Snake Case)update_record
クラス名単語の先頭を大文字 (Camel Case / CapWords)UserAccount, HttpRequest
定数名全て大文字 + アンダースコアMAX_CONNECTIONS, DEFAULT_TIMEOUT

5. インポートの順序

ファイルの先頭で行う import は、以下の順序でグループ分けし、グループ間に空行を入れます。

  1. 標準ライブラリos, sys など)
  2. サードパーティ製ライブラリpandas, requests など)
  3. ローカル(自作)のモジュール
import os
import sys

import requests

import my_module

自動フォーマッターの活用

これらのルールをすべて手動で守るのは大変です。現代のPython開発では、以下のようなツールを使って自動的にPEP 8準拠のコードに修正(フォーマット)するのが一般的です。

  • Black: 現在最も人気のあるフォーマッター。PEP 8に準拠しつつ、妥協のない統一されたスタイルに書き換えます。
  • autopep8: PEP 8違反を自動修正するツール。
  • Flake8: PEP 8違反をチェックするツール(修正はしない)。

まとめ

  • PEPはPythonの仕様提案文書、PEP 8はその中の「コーディングスタイルガイド」です。
  • インデントはスペース4つ、命名はスネークケース(変数・関数)とキャメルケース(クラス)が基本です。
  • ルールを守ることで、誰にとっても読みやすく保守しやすいコードになります。
  • ツール(フォーマッター)を活用して、自動的に規約を守る環境を作ることが推奨されます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次