当コラムでは、PythonZen & PEP 8 検定試験(こちらでオンライン受験できます)で出題されている問題の解説を行なっています。当コラムシリーズを読んで自信がついたら、ぜひ試験に挑戦してみてくださいね。
今回のコラムで解説する試験問題はこちらです。
問題
PEP 8で非推奨とされる変数名(小文字の英字)を、次の選択肢の中から選びなさい。
i
l
o
v
解答のヒント
PEP 8に書かれている命名規則のうち、避けるべき名前(Names to Avoid)に関する問題になっています。こちらのガイドラインを読んでみましょう。
Never use the characters ‘l’ (lowercase letter el), ‘O’ (uppercase letter oh), or ‘I’ (uppercase letter eye) as single character variable names.
In some fonts, these characters are indistinguishable from the numerals one and zero. When tempted to use ‘l’, use ‘L’ instead.
1文字で決して使わないこと(Never use)とされている3つの文字が挙げられています。続く一文に理由が書かれてある通り、フォントによっては他の文字と見分けがつかなくなり、バグの温床となりやすい文字だからです。
とはいえ、開発者のみなさんにはセーフティネットとして以下の文字の見分けがつくフォントをエディタで設定しておくことをお勧めします。本Webページの表示ではどうでしょうか? 見分けがついているでしょうか?
I
,l
,1
,|
O
,0
日本語にも広げると見分けがつかない文字はもっとたくさんありますね。文字コードでは全くの別物ですので、これらも見た目で区別できるフォントにしておくとなお良いと思います。
ー
,一
ニ
,二
ハ
,八
タ
,夕
カ
,力
ロ
,口
柿
,柿
正解はこちら
ガイドラインには、ルールとして従わなくてはいけないこと(must / never)、推奨されること(should)、各ルールの適用例・非適用例(cases)が書いてあります。ルールを機械的に覚えるだけではなく、なぜこのルールがあるのかを意識していくと、理解が深まりますね。
自信がついてきたら PythonZen & PEP 8 検定試験 で実際に試験を受けて、正解を当ててみましょう。
そして、みなさんのPython開発にも活かしていただけると嬉しいです。