Pythonでのコメントとコメントアウトの書き方をまとめました

19/02/11 17:49:54     19/04/08 11:48:07

Pythonのcomment

コメントとは、ソースコードに対する日本語や英語の説明のことです。第三者にソースコードの内容をパッと見でわかるようにすることや、自分自身が後から見返した際にわかりやすくする、といった目的があります。

また、先にコメントを書いておくことで、どのような実装をすれば良いのか明確にしておく、といった使い方も可能です。先にロジックを日本語や英語で理解しておいた方がプログラミングしやすいので、先にコメントを書いておくのはオススメのやり方です。

このように利便性が高く必須と言っても過言ではないコメントですが、ソースコードにそのまま日本語や英語でコメントを書くと当然バグにつながります。なぜなら、システム上はソースコードと関係ないものだからです。

そこで、コンピューターに「ここはソースコードとは無関係です。」「コメントなので処理しないでください。」と伝える必要があります。プログラミング言語ごとに方法は微妙に異なるのですが、このページではPythonでの方法を紹介します。

ただし他のプログラミング言語でも基本的な考え方は同じなので役立ちます。

コメントアウトとは

上で説明した通りコメントはコンピューターに読み飛ばしてもらう必要があるのですが、このことを「コメントアウト」と呼びます。

せっかくコメントを書いたのにコメントアウトし忘れてバグにつながった、といったケースは案外多いため、間違えないよう注意したいところです。

コメントアウトの方法

Pythonのコメントアウトの方法は主に二種類で、「#」の後にコメントを書く方法と、「’(シングルクォーテーション)」もしくは「”(ダブルクォーテーション)」で囲う方法があります。このように書くと「#」を書くだけの方が便利なように感じられるかもしれません。

実際その通りで「#」でのコメントアウトを使う機会がもっとも多いかと思いますが、「#」でのコメントには欠点もあります。それは、1行しか適用されないということです。「#」でのコメントアウトはコメントを囲うわけではないため、終わりを指定することができません。

そのため、自動的に1行でコメントアウトが終わるよう設定されているのです。なので1行コメントを書く際は「#」が便利なのですが、コメントアウトが複数行に渡る場合、行ごとに「#」を書くのは冗長で見にくいです。

そこで便利になるのが「’(シングルクォーテーション)」もしくは「”(ダブルクォーテーション)」で囲う方法です。なので、基本的にはコメントが1行なら「#」でコメントアウト、複数行に渡る場合は「’」や「”」で囲う、と決めておくと良いかもしれません。

実際の開発現場でのルールはプロジェクトによりけりで、1行の「#」コメントしか認めていないプロジェクトなどもあります。また「’」と「”」については、どちらでコメントアウトするか明確に決められているケースが多いです。

個人開発ならコメントアウトの方法も自由ですが、後から他人がソースコードを見る可能性もあるため「’」と「”」についてはどちらかに統一しておいた方が良いかもしれません。ここまでの説明を実例で紹介すると以下のサンプルコードのようになります。

print("Hello world!")
# display "Hello" with print function.

このソースコードを実行すると、「Hello world!」と出力されます。次に、複数行の場合だと以下のようになります。

print("Hello world!1")
'''
print("Hello world!2")
print("Hello world!3")
print("Hello world!4")
'''

このソースコードを実行すると、「Hello world!1」だけが出力されます。

以降はコメントアウトされているため、出力されません。単純なコメントアウトだけなら以上で終了で、これだけ押さえておけば特に問題はありません。

ルールに従って記号を入力するだけなので、非常に簡単かと思います。しかしより応用的なコメントの使い方もあります。エンジニアでも知らない人がいるくらいのものではあるのですが、プロジェクトによっては以降で紹介する方法がルール化されているかもしれません。

個人開発ではそれほど使用しないかもしれませんが、こんな使い方もある、ということで紹介しておきます。

docstringの使い方

応用的なコメントの使い方というのが、docstringというものです。docstringは関数やクラスに対する説明文で、通常のコメントに近いです。では通常のコメントアウトと何が違うのかというと、docstringとしてコンピューターに認識されるとdocstringの形式で表示されます。

普通にコメントアウトしても特に問題はないのですが、docstringで表示すると関数やクラスの説明がわかりやすくなる、くらいに捉えておくと良いかと思います。また通常のコメントアウトよりもレイアウトが統一されるため、属人性を排除できるというメリットもあります。

書き方としては、’(シングルクォーテーション)」もしくは「”(ダブルクォーテーション)」を三つずつで囲みます。サンプルコードとしては以下のようになります。

"""
docstringの使い方を説明するためのモジュールです。
"""
def func():
    """
    この関数は文字列Hello worldをプリントします。
    """
    print("Hello world")

class myclass():
    """
    docstirngの使い方を説明するのためのクラスです。
    """
    def __init__(self, val):
        self.value = val

    def class_func(self):
        print("This is class_func")
func()
t = myclass("test")
t.class_func()

このまま実行すると通常のコメントアウトと同じでコメントとして扱われるだけなのですが、ファイル保存してインポートした際に違いが現れます。

インポートした後help関数でファイル名を指定すると、以下のようにdocstringが表示されます。

先程作ったtest.pyをモジュールとしてimportしてみましょう。

そしてimportした後、help関数でdocstringを表示させてみましょう。

Help on module test:
NAME
    test - docstringの使い方を説明するためのモジュールです。
CLASSES
    builtins.object
        myclass

    class myclass(builtins.object)
    | docstringの使い方を説明するためのクラスです。
    |
    | Methods defined here:
    |
    | __init__(self, val)
    | Initialize self. See help(type(self)) for accurate signature.
    |
    | class_func(self)
    |
    | ----------------------------------------------------------------------
    | Data descriptors defined here:
    |
    | __dict__
    | dictionary for instance variables (if defined)
    |
    | __weakref__
    | list of weak references to the object (if defined)
FUNCTIONS
    func()
        この関数は文字列Hello worldをプリントします。
DATA
    t = <test.myclass object>
FILE
    c:\users\desktop\test.py

この形式で統一されるため、一目でdocstringとわかりやすいです。

以上、コメントアウトの方法を紹介しました。

案件量が豊富なアルマサーチ

アルマサーチ

最後に、アルマサーチのご紹介!

アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。

アルマサーチが選ばれる理由

  1. 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
  2. 優秀なコンサルタント陣。
  3. 案件に参画後もしっかりサポート。

豊富な案件量

フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。

優秀なコンサルタント陣

技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。

案件に参画後もしっかりサポート

常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。

相談する

Python関連記事
1, 【Pythonのフリーランス求人・案件情報】エンジニア開発単価は?未経験でもいける?
2, Pythonエンジニアが語る、Python始めるなら見るべきサイト5選
3, 【みてわかる】pythonのインストール方法をまとめてみた
4, Pythonを簡単にインストール出来るanacondaの使い方
5, 【Python入門】pythonのfor文の使い方をマスターしよう
6, Pythonのif文の使い方を解説!演算子もおさらい
7, Pythonの配列を徹底解説!宣言や追加・削除など
8, Pythonでできることとは?人工知能で強みを発揮!
9, Pythonの正規表現とは?使い方や種類について解説
10, なぜ今機械学習が注目されているのか?Pythonでの勉強方法も解説
11, (この記事)Pythonでのコメントとコメントアウトの書き方をまとめました

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する