Python の命名規約 - ネーミングルール


こんにちは、切口太郎です。

Python には、摩訶不思議な名前の付け方のルール(命名規約)があります。

そもそもPythonは、変数名やメソッド名は禁則文字以外は自由につけることができます。

_my_first_name
MyFirstName
myFistName
MY_FIRST_NAME

なんか統一感ないですねー!

みんな自由に名前をつけていると、複数人でコーディングした場合とてもソースが見にくくなります。

名前の付け方のルールはいろいろありますが、次の3種類がよく利用されています。

ルール
説明
スネークケース
アンダースコアーで単語間をつなぐ
my_first_name
キャメルケース
単語の区切りの先頭を大文字で記述する。
MyFirstName
チェーンケース
単語の区切りをハイフンでつなぐ
my-first-name

スネークケースは、_aaa_aaa_aaa で蛇のように見えるからで、キャメルケースは、aaBbCcDd のようにラクダのコブのように見えるからということです。
チェーンケースは、ハイフンが真ん中なので、鎖のように見えるからということです。
(無理やり感がすごいですが・・・)

キャメルケースは、細かく2つに分類できます。

アッパーキャメルケース
文字の先頭が大文字
MyFirstName
ローワーキャメルケース
文字の先頭が小文字
myFirstName

名前の先頭が大文字か小文字かの違いです。


Java 言語では、このような規則になっています。

対象
ルール
変数名/メソッド名
ローワーキャメルケース
myValue / myMethod
クラス名
アッパーキャメルケース
MyClass

さて、Python はこのようになっています。
結構複雑です。 

対象
ルール
パッケージ
全小文字 なるべく短くアンダースコア非推奨
tqdm, requests ...
モジュール
全小文字 なるべく短くアンダースコア非推奨
sys, os,...
クラス
最初大文字 + 大文字区切り
MyFavoriteClass
例外
最初大文字 + 大文字区切り
MyFuckingException
型変数
最初大文字 + 大文字区切り
MyFavoriteType
メソッド
最初小文字 + 大文字区切り
myFavoriteMethod
関数
全小文字 + アンダースコア区切り
my_favorite_funcion
変数
全小文字 + アンダースコア区切り
my_favorite_instance
定数
全大文字 + アンダースコア区切り
MY_FAVORITE_CONST

自クラス内でのみ使用する内部変数と内部メソッドはアンダースコアで開始します。
例)_self

正直、このような面倒なルールに沿わなくても文法エラーなどは出ないのですが、複数人でコーディングした時にはこういうルールは必要です。
他人のソース見た時に、自分と違うと明らかに見にくいですからね。

Python の場合、オフサイドルールとともに、このような命名ルールも同時に「体で覚えた」ほうが良いでしょう!


今日は面倒な命名規約についてでした。l




コメント

このブログの人気の投稿

Hyper-V で Docker Desktop for Windows を使う(その2)

VS Code で Hyper-V + Docker Desktop for Windows