Pythonにおけるコーディング規約について【初心者向け解説記事】
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
Pythonにおけるコーディング規約とは
Pythonプログラミングで重要なことのひとつは、コードが他の開発者に理解されやすいかどうかです(可読性)。そのためにも、Pythonのコーディング規約を理解し、それを適用することが必要となります。規約を守ることで、コードの読みやすさを向上させ、またバグを防ぐことが可能になります。
コーディング規約とは
コーディング規約とは、プログラミング言語の文法ルールに加えて、ソースコードの可読性や保守性を向上させるための一連のガイドラインです。これには、命名規則、インデントのスタイル、コメントのスタイルなどが含まれます。
Pythonの公式スタイルガイド: PEP8
Pythonには、PEP 8と呼ばれる公式のスタイルガイドがあります。これは、Pythonコミュニティによって定められたコーディングスタイルの規約で、Pythonのコードが一貫した見た目を持つことを助けています。Pythonはインデントなどを強制することにより、コードの可読性を向上することを目指す言語設計が行われています。
PEP8の主要なルール
PEP 8には多くのルールがありますが、特に重要なものは以下の通りです。
- 命名規則:変数名は小文字とアンダースコアを用い、クラス名はCapWords規則(単語の先頭を大文字にする)を適用します。
- インデント:ひとつのインデントにはスペース4つを用います(Tabでも可)。
- スペース:演算子の前後やコンマの後にスペースを入れます。
他にも、一行の長さは72文字以内に抑える、不要な空白行やスペースを避ける、コードブロックの長さを制限するなどの規約があります。
Docstringとコメントの書き方
PEP 8はまた、docstring(関数やクラス、モジュールの説明を書くための特殊なコメント)と一般的なコメントの書き方についても指針を提供しています。 Docstringは三重引用符(""")で囲み、関数の機能と引数、戻り値の説明を書きます。 一般的なコメント(コメントの前に#をつける)はコードの直前に書き、その行のコードの目的や動作を説明します。
Pythonでの型ヒントの使用
Python 3.5以降、型ヒント(変数や関数の引数、戻り値の型を示す機能)が導入されました。型ヒントはコーディング規約の一部として推奨されており、コードの可読性を向上させ、ツールによる静的なエラーチェックを可能にします。以下に型ヒントの使用例を示します。
def greet(name: str) -> str:
return "Hello, " + name
リントツールを使ったコードの品質向上
Pythonには、コーディング規約に従っているかを自動的にチェックするツール(リンター)が存在します。特に「flake8」や「pylint」などが有名で、これらを使うこと でコードの可読性や保守性を向上させることができます。以下に、flake8の使用例を示します。インストールはコマンドプロンプトなどで以下のコマンドを実行するだけです。
pip install flake8
使い方は「flake8」の後にチェックさせるファイルやディレクトリを指定するだけです。
例として、以下のように出力されます。
$ flake8 example.py example.py:2:1: E302 expected 2 blank lines, found 1 example.py:5:16: E231 missing whitespace after ','
このように、リンターはPEP 8などの規約違反を指摘し、どのように修正すればよいかを示してくれます。
まとめ
Pythonのコーディング規約は初めて学ぶときは複雑に感じるかもしれませんが、実際にコードを書きながら規約に従うことを意識すると、自然と身につきます。また、リントツールを使用することで、規約違反を自動的かつ素早く見つけることができます。これらの習慣を身につけることで、Pythonコードの品質を向上させ、他の開発者との連携を円滑に進めたり、後から自身でコードを見返す際にも容易に修正などができます。
【著者】
フォワードソフト株式会社のエンジニア。Java、Python、JavaScript、C#などの言語の他、クラウドやネットワーク技術を勉強しています。PythonやVBAを使った自動化で楽をする方法を考えるのが好きです。 最近はジェネレーティブAIの業務利用に関する検証を行っています。 資格を通じて知識を吸収することを心がけており、セキュリティスペシャリスト、データベーススペシャリスト、応用情報技術者、Oracle Certified Java Programmer Gold SE 11、Pythin3 エンジニア認定試験、HTML5プロフェッショナル認定試験レベル2、AWSプラクティショナーなどの情報資格を保有しています。
正社員/フリーランスの方でこのようなお悩みありませんか?
- 自分に合う案件を定期的に紹介してもらいたい
- 週2、リモートワークなど自由な働き方をしてみたい
- 面倒な案件探し・契約周りは任せて仕事に集中したい
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート