Python命名規則(PEP8より)

Pythonには 「PEP8: Pythonコードのスタイルガイド」があって、変数名や関数名などの命名規則も書いてあります。
命名規則やコーディングスタイルを合わせることで、ソースコードを読んでくれる人たち、レビューしてくれる人たちの負担を下げることができます。
命名規則だけでなく「リーダブルコード」に書かれている命名方法も参考にしましょう。

PEP8

用途 命名規則
非公開、プライベート 先頭にアンダースコアを1個つける
(外部からアクセスしないルール・約束事。外部からアクセスは可能)
ローカル変数は元々非公開なのでつけない
サブクラスでの名前衝突回避 先頭にアンダースコアを2個つける
(特殊なクラス名を付与して外部からアクセス可能)
特殊プロパティ、特殊メソッド 前後にアンダースコアを2個つける
(言語仕様で用意されているので自分で新規定義しないこと)
予約語や組込み関数名と衝突回避 最後にアンダースコアを1個つける
インスタンスメソッドの第一引数 常に self
クラスメソッドの第一引数 常に cls
用途 命名規則
パッケージ 全て小文字の短い名前、アンダースコアは使わない
モジュール 全て小文字の短い名前、アンダースコアで区切ってもよい
クラス、例外 CapWords方式 (先頭だけ大文字の単語を繋げる、アンダースコアは使わない)
関数、メソッド 小文字のみ、必要に応じて単語をアンダースコアで区切る
定数 大文字のみ、単語をアンダースコアで区切る
通常、モジュールレベル(関数の外側)に書く
変数、引数 小文字のみ、必要に応じて単語をアンダースコアで区切る
1文字変数 l (小文字のエル)、O (大文字のオー)、I(大文字のアイ) は決して使わない
(フォントによって数字の10と見分けがつかないため)

PEP8以外

用途 命名規則
破棄変数 アンダースコア1個
(forループや分割代入で変数が必要だけど使わない場合)

リーダブルコード

  • 単語は省略しない(慣例的に省略して使われている名前はOK)
  • 名前に情報・意味を込める(flag, check では何のフラグか、何をチェックしたどんな値か分からない)
  • 名前で情報を伝えてコメント不要にする(コメントにはwhatではなくwhyを書く)
  • 1文字変数は1画面で見渡せる範囲(25行以内)で使い終わる一時変数に使う

など。

shiracamus
元、低レイヤーエンジニア。 現、サイバーセキュリティ研究者。 使用言語は、C, Lisp, Java, Python, C#, JavaScript/Node.js。 経験アセンブリ言語は Z80, 6502, 6809, 68000, SPARC, PowerPC, ARM, x86/x64。
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザーは見つかりませんでした