1. TOP
  2. ブログ
  3. Pythonコードのチェックライブラリ集

Pythonコードのチェックライブラリ集

ある程度Pythonでのプログラミングに慣れてくると、プログラムをただ書くだけではなく、そのプログラムの品質が気になってきます。つまり、「良いプログラム」を書きたいと思うようになります。
Pythonでは、書いたプログラムをあらゆる角度からチェックするための、様々なライブラリがあります。

可読性

これは読みやすさのことですが、良いプログラムのためには非常に重要な要素です。少ない行数で、パフォーマンスも優れているプログラムを書けたとしても、誰も読めないようなプログラムでは台無しです。また、時間が経てば本人でも書いたプログラムのことは忘れてしまうもので、未来の自分のためにも見やすいコードを書くことを心がけたいものです。

Pythonでは、読みやすいプログラムを書く為の指針が大まかに2つあります。1つは「PEP8」で、これは各種名前の付け方やスペースの数など、Pythonコードをどう書くかのガイドラインになります。もう1つは「PEP257」で、モジュールやクラス、関数へのdocstringに関するものです。

この2つを守ることが良いコードのための第一歩ですが、書いたプログラムがこれらを守っているかを目視でチェックするのは大変です。幸いにもPEP8やPEP257を守るためのライブラリがいくつかあるので、これらを利用しましょう。

pycodestyle(旧pep8)

サードパーティ製のライブラリです。ソースコードがPEP8を守っているかのチェックを行ってくれます。以前はpep8という名前のライブラリでしたが、現在の名前に変更されました。

pydocstyle(旧pep257)

サードパーティ製のライブラリです。こちらはソースコードがPEP257を守っているかのチェックを行ってくれます。pep8ライブラリが名前を変更したので、それに合わせてpep257ライブラリも現在の名前に変更されました。

autopep8

サードパーティ製のライブラリです。これはソースコードを、自動でPEP8に準拠するように修正を行うツールです。PEP8は全て手直ししていると結構大変ですので、このツールで自動化を行うのがおすすめです。

パフォーマンス

作ったプログラムが遅く実行速度を改善したい、という場合はよくあります。最も原始的な方法ではtimeモジュールを使い、全体や部分的な実行速度を計測し、修正と計測を繰り返す方法がありますが、更に良い方法もあります。

timeit

標準ライブラリです。timeモジュールを使うよりも手軽で便利な方法になります。timeit()という関数があり、コードをn回テストして結果を示してくれます。また、python -m timeit のようにコマンドラインから呼び出すことも可能です。

cProfile

標準ライブラリです。プログラムの実行速度を改善したいけれど、そもそも何処に時間が掛かっているかがわからない、という場合に便利なライブラリです。全ての関数の実行時間を測定し、何処の関数で一番時間を使っているか、どの関数が何回呼ばれているか、といった情報を表示してくれます。こちらもpython -m cProfile のようにコマンドラインから呼び出すことが可能です。

テスト

書いたプログラムをテストするのは良い習慣です。プログラムをちょっと変更するとき、私達はよく「この程度の修正なら他に影響はない」と思っていたりするのですが、悪いことはよくおきます。修正や拡張の度にそのプログラムが正しく動くかを確認する必要がありますが、最初に1度テストを書いておけば、これはすぐに終わります。また、何か不具合があってもすぐに発見することができます。

unittest

標準ライブラリです。JavaのJUnitに影響を受けているため、他の言語でJUnitライクなテストフレームワークの経験があれば、すぐに使いこなすことができます。

doctest

標準ライブラリです。これはdocstringの中にテストを書いていきます。上手く使うと、docstringとテストを両方こなすことができます。また、読む側としてもこれは分かり易いです。

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。

アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP