Pythonでコメント・コメントアウトを書く方法をわかりやすく解説!

今回はPythonにおける基本的なコメントの書き方について説明したいと思います。

  • そもそもコメントって何?
  • コメントの書き方ってあるの?
  • 複数行にコメントを書く場合はどうするの?

そんな方に向けて、この記事では以下の内容について解説していきます!


【基礎】コメントとは
【基礎】一行コメント
【基礎】複数行コメント
【基礎】エラーが出る場合の対処法
【発展】docstringの書き方

Pythonのコメントについてわかりやすく解説していますので、ぜひ参考にしてくださいね!

※ この記事のコードはPython 3.7で動作確認しました。

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

コメントとは

コメントの書き方を解説する前に、コメントとは何かを解説します。

プロジェクトでは自分が書いているコードの目的や説明を、第三者に正しく伝える必要があります。

なぜなら他人のコードは説明無しで解読するのはとても難しいことだからです。

また、コメントはコードの説明だけではなく実行させたくないコードを無効化したいときにも使用します。

このコメントとしてコードを無効化することをコメントアウトと呼びます。

コメントの書き方

それでは早速コメントを書いてみましょう。

基本的なコメントの書き方

Pythonでコードにコメントを挿入する時は、「#」(シャープ)を使います。

「#」以降に書く文章は、その行の終わりまで無視されることになります。

一行コメント

では実際にコメントを書いてみましょう。

こちらのコードをご覧ください。

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

出力結果はこのようになります。

Hello world!

上のコードでは、print関数を使用して指定した文字列を表示させてみました。

「#」以降に書かれたコードと説明は出力されず、一行目の「Hello world!」のみが表示されました。

また、日本語のコメントを書く場合は気をつけることがあります。

こちらについてはあとの章で詳しく解説します。

複数行コメント

先ほどご紹介した「#」で、複数行をコメントアウトしたい場合はどうすればよいのでしょうか。

「#」を使用して複数行をコメントアウトするには、行ごとに「#」を付けるという方法もあります。

しかしこの場合、多くの行をコメントアウトするには向きません。

そこで「’」(シングルクォーテーション)または「”」(ダブルクォーテーション)を3つでコメントアウトする部分を囲みましょう。

こちらのコードをご覧ください。

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

出力結果はこのようになります。

Hello world!1

こちらのコードでは、2行目以降の3行を複数行に渡ってコメントアウトしてみました。

実際、出力された文字列は一行目の「Hello world!1」のみです。

docstringの書き方

続いてdocstringの書き方について見ていきましょう。

docstringとは

docstringを簡単に解説すると、自作の関数やクラスなどに付ける説明文のことです。

しかし、これではコメントとdocstringの差がイマイチ理解出来ませんよね。

シンプルなコメントとdocstringでは何が違うのでしょうか。

docstringを使用する主なメリットとしては、モジュールやクラスや関数などの使い方などが記入された「説明書」のようなものを参照したい時に、docstringの内容が表示されることです。

docstringの使い方

それでは実際にdocstringを書いてみましょう。

先ほど、複数行コメントを書くにはシングルクオーテーション3つかダブルクオーテーション3つを使用するとお伝えしました。

関数やクラスなどを定義するときに、シングルクオーテーション3つかダブルクオーテーション3つを使用してコメントを書くと、それは自動的に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()

こちらのコード内にはfuncやclass_funcなどの関数や、myclassという名のクラスを作成しました。

このサンプルコードを実際に実行するためにはこのコードをファイルに保存し、test.pyと名前を付けて保存してください。

そしてこれをターミナルコマンドプロンプトで実行しましょう。

python test.py

このようなコマンドを実行すると、こちらのサンプルコードが実行されます。

実行結果

Hello world
This is class_func

これでサンプルコードが正常に動くことが分かりました。

しかし、これではdocstringが何なのかあまり分かりませんよね。

では、docstringの理解を深めるために、Pythonのインタラクティブシェルからdocstringを見てみましょう。

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

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

help(test)

実行結果

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:usersdesktoptest.py

ご覧いただけるように、先ほど書いたdocstringが表示されましたね。

まとめ

今回はPythonでのコメントの書き方を解説しました。

覚えておきたいポイントは

・一行コメントはハッシュタグ!
・複数行はクォーテーション記号!
・docstringを活用するとより親切なクラス、関数が書ける!

になります。

みなさんも、この記事を通してPythonでのコメントの書き方について学んでいってください。

なお、コメント・コメントアウト以外にも、Pythonの基礎知識などが知りたい方は以下記事をどうぞ!

Pythonをはじめて学ぶ方のために、Pythonでできることや学習法を中心にご紹介していますので、きっと参考になるかと思います。

Python入門 完全攻略ガイド

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次