Pythonで複数行のコメントアウトを行う

270, 2021-06-15

目次

Pythonで複数行のコメントアウトを行う

Pythonでコードを書いていると複数行のコードをコメントアウトしたくなる時があります。
Pythonのコメントアウトは行頭に「#」を書きますが、これだとすべての行の行頭に#を書かないといけません。

docstringという記法を使うと、複数行のコードをコメントアウトのように無効化することができます。
結論から言うとPythonで複数行のコメントアウトは↓のように行います。

"""
↓はコメントアウトされている
a = 1
b = a + 2
print(b)
"""

# ↓はコメントアウトされていない
c = 1
d = c + 2
print(d)

この記事では複数行のコメントアウトについて具体的に↓を見ていきます。

  • コメントアウトとは?

  • docstringとは?

  • docstringで複数行のコメントアウト

コメントアウトとは?

プログラミングで行われるコメントアウトとは、特定のコードを機能しないようにコメントにしてしまうことを言います。
たとえばPythonではコメントには「#」が使えますが、これを使って一行のコードをコメントアウトする場合は↓のようにします。

# a = 1 + 2

コメント化(コメントアウト)された行は処理系には無視されます。
ですので↑の場合、Pythonで↑のコードを実行してもPythonは「a = 1 + 2」という式を無視して実行しません。

コメントアウトはデバッグなどでよく使われます。
不要なコードをコメントアウトして、プログラムの動作を変えてふるまいを確認するときなどによく使われます。
または単純に不要なコードを機能させないようにするときにも使われます。

docstringとは?

docstringとは関数やクラスのメソッドなどに付けられるPythonの説明文です。
これはダブルクオート(")かシングルクオート(')を3つ並べたものを使います。
例えばダブルクオートを3つ並べ、その次に文章を書きます。そして再びダブルクオートを3つ並べると、その文章はdocstringになります。

def cat():
    """ここの文章は
    関数catの説明文になる。
    """
    pass

シングルクオートの場合は↓のようになります。

def dog():
    '''ここの文章は
    関数dogの説明文になる。
    '''
    pass

関数などに付けられたdocstringhelp()で参照することができます。

help(cat)

Pythonではコードにドキュメントを書くことが可能になっているため、そういったときにこのdocstringが使われます。
公式ドキュメントのサーバーがダウンしていたり、そもそも存在しなかったりする場合などに有効なドキュメントとして機能します。
有名なライブラリ(numpy, pandasなど)はこのdocstringを充実させる傾向があるので、ネットがオフラインでもある程度ドキュメントを参照することが可能です。

docstringは用途としては関数やメソッドなどの説明文の付加です。
しかしこれをコメントアウトに流用すると、複数行のコードをコメントアウトすることが可能になります。

docstringで複数行のコメントアウト

docstringで複数行のコードをコメントアウトするには↓のようにします。

"""
a = 1 + 2
b = a * 3
print(b)
"""

↑の場合、a = 1 + 2などのコードはdocstring扱いになるため、コードを実行してもPythonには無視されて実行されません。

シングルクオートでコメントアウトする場合は↓のようになります。

'''
a = 1 + 2
b = a * 3
print(b)
'''

おわりに

今回はPythonで複数行のコードをコメントアウトする方法を見てみました。
docstringを使えば簡単に複数行のコードをコメントアウトできます。

黒歴史をコメントアウト

痛ポエムとともに

上塗りしとるやんけ