CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちは、吉政創成 菱沼です。
今回も「きれいなPythonプログラミング(マイナビ出版)」という書籍を利用して学習します。
前回は、コードを自動で整形してくれるBlack様を実際に使ってみました。
今回から4章「わかりやすいネーミング」に入ります。この章では、変数の適切な名前の付け方を学びます。本稿では命名規則3種類と、PEP8 、定数について書いていきます。
Pythonで変数を使う際には名前をつけますよね。「sazae =」とか「isono =」とか。
変数に名前を付ける時には、基本的にわかりやすいものをつけることになると思いますが、この名前、結構悩みませんか?考えるのが面倒になって、ついつい安直に何の工夫もなく付ける私ですが、PEP8の中に変数にも命名規則に関する記述があるんだそうです。
まずは命名規則と種類について、テキストから引用します。
---------------------------------------------------------------
P.64
Pythonの識別子は大文字と小文字が区別され、空白を含むことができないため、プログラマーは複数の単語を含む識別子にいくつかのスタイルを使用しています。
(中略)
最も一般的なスタイルはsnake_caseとcamelCaseです。どちらを使っても構いませんが、どちらを使用するのかプロジェクトとして一貫性のあるものにしましょう。
---------------------------------------------------------------
引用文にあるsnake_caseやcamelCase。加えて、PascalCaseというものがあり、この3つが命名規則にあたるものだそうです。
本文に書かれていること+ちょっと調べて分かったことをそれぞれまとめたいと思います。
ところで、上記で挙げた3つの命名規則の内、PEP8で推奨されているのはsnake_caseだということですが、実際にPEP8ではどのように書かれているのでしょうか。
PEP8の命名規則に関する推奨事項をテキストから引用します。
---------------------------------------------------------------
P.65
これらのルールは必要に応じて変更しても構いません。
---------------------------------------------------------------
PEP8の命名規則に関する原文はこちらからご確認いただけます。
https://peps.python.org/pep-0008/#naming-conventions
https://pep8-ja.readthedocs.io/ja/latest/#id23(日本語訳)
いろいろなサンプルコードの変数名を見ていると、大文字だったり小文字だったり、アンダースコアがあったりなかったりといろいろありましたが、こういった使い分けがされていたんですね。とはいえ、PEP8で書かれている表現が絶対という事ではないので、プロジェクトによっては使いやすい形でルールを決めて使われているんだろうと思います。
ところで、上記の中で定数変数ってなんだ?と思い調べてみました。
通常、変数は、値を一時的に入れておく箱になりますので、変数に入る値は変わります。一方、定数変数は、中に入っている値が一度設定されたら変わらない(固定されている)ものを指すそうです。
ただ、Pythonの場合、厳密な意味で定数はサポートされていないそうですで、仕組みとしては値が変わってしまうものではあるものの、大文字で書いておくことで「これは定数ですよ」と分かりやすく宣言しておくことを推奨されているそうです。
使い道としては、プログラムの中で変わらないものということになりますので、例えば税率などが定数変数として大文字で書いておくという感じになるようです。
それではきりが良いので、今回はこちらで終了です。今回もお付き合いいただきありがとうございました。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes