Python

【Python】コメント・コメントアウトの使い方

この記事では、Pythonのコメント・コメントアウトについて解説します。

コメントは プログラミング言語に備わった重要な機能の1つです。コメントの必要性や書き方を学んで 誰が見てもわかりやすいソースコードを書ける ようにしましょう!

それでは、コメント・コメントアウトについて見ていきましょう!

コメント・コメントアウトとは?

コメントとは?

ソースコード上で実行時に無視される文字列のことを言います。ソースコード上にメモを残せるようなイメージです。

コメントアウトとは?

ソースコードをコメントにすることを言います。バグを特定したい時など、一時的にコードを除きたい場合に使います。

コメントのメリット

なぜソースコードにコメントを書く必要があるのでしょうか? それはコメントを書くことで主に以下のようなメリットがあるからです。

メリット1. 可読性の向上

クラス名や関数名だけではどのようなものか伝えられない場合に、コメントを添えておくことでいちいち処理を追って解読する必要が無くなります。

メリット2. メンテナンス(保守)性の向上

読み解きやすいコードはメンテナンス性も向上します。コード修正時に修正日時や担当者名、修正内容などを記述することでメンテナンスを楽にすることができます。

コメントはコードを書く人に向けた機能です。

書くことで処理が速くなったりするわけではありませんが、コードだけではわかりにくい場合にコメントで補完することができます。

コメントの記述方法

それでは、実際にソースコードにコメントする方法を見ていきましょう!

行コメント

行コメントとは、行単位でコメントする方法です。# を記述した箇所から行末までがコメントとして認識されます。

# コメント

# の後にスペースを1つ空ける

行コメントには「ブロックコメント」と「インラインコメント」があります。

ブロックコメント

ブロックコメントは、説明したい箇所の上にインデントを合わせて記述します。

# 1を出力
print(1)


# 2を出力する関数
def func():
    # 2を出力
    print(2)


# func関数の呼び出し
func()

実行結果

1
2

インラインコメント

インラインコメントは、説明したい箇所の後に続けて記述します。その際は、スペースを2つ空けてからコメントを書き始めます。

print(1)  # 1を出力

def func():
    print(2)  # 2を出力

func()  # func関数の呼び出し

実行結果

1
2

ただし、インラインコメントはバックスラッシュを使って明示的に行継続をしている箇所には、記述出来ないので気をつけましょう!

s = 'a' \  # エラー
'b' \  # エラー
'c'  # コメント可能

print(s)

また、インラインコメントが連続する場合は、インデントを合わせたりします。

print(1)    # 1を出力
print(100)  # 100を出力

行コメントは、#から行の末尾までがコメントとして扱われます。#で囲み、範囲指定してコメントを記述することはできません。

例えば、以下のように記述しても変数は初期化できていません。

# valに1を代入 # val = 1

print(val)
実行結果
Traceback (most recent call last):
  File "main.py", line 3, in 
    print(val)
NameError: name 'val' is not defined

複数行コメント

複数行コメントは、複数行文字列を使って表現することができます。シングルクォート(')、またはダブルクォート(")を3つ使って囲むことで表現します。

'''複数行
コメント'''

または

"""複数行
コメント"""

サンプル

モジュールの先頭に使い方や定義されているクラスを複数行コメントを用いて記述することでユーザビリティを向上させることができます。

以下のコードは、pickleモジュールの先頭です。

"""Create portable serialized representations of Python objects.

See module copyreg for a mechanism for registering custom picklers.
See module pickletools source for extensive comments.

Classes:

    Pickler
    Unpickler

Functions:

    dump(object, file)
    dumps(object) -> string
    load(file) -> object
    loads(string) -> object

Misc variables:

    __version__
    format_version
    compatible_formats

"""
・
・
・

複数行コメントは、あくまで文字列なので行コメントと違って実行時に無視される訳ではない。なので、インデントが異なるとエラーになってしまいます。

print(1)
    """
    エラー
    です
    """

以下のように、正しいインデントで記述しましょう!

print(1)
"""
コメント
です
"""

# 関数内に記述する場合は関数のインデントのルールに従います
def func(): 
    """
    複数行
    コメント
    """ 
    pass

複数行コメントアウトと似たような感じで「ドキュメンテーション文字列」を定義することができます。ドキュメンテーション文字列とは、クラスや関数に説明文を記述する機能ですが、詳しくは以下の記事を参考にしてください。

ドキュメンテーション文字列の書き方【docstring】

コメントアウトのショートカット

統合開発環境やエディタといったツールでは、コメントアウトをするためのショートカットが用意されています。

大抵のツールでは、以下のコマンドで選択している行をコメントアウトできます。

Mac command + /
Windows ctrl + /

また、複数行を選択した状態でショートカットを押すことで、選択していた行をまとめてコメントアウトすることができます。

上記のコマンドでできなかった場合は、設定から登録されているショートカットを確認してみましょう!

Pythonコーティング規約[PEP8]

PEP とは「Python Enhancement Proposal」の略で、PEP8 ではコーディング規約について書かれています。

そこには、コメントについてのルールも記載されています。

外部サイトPEP 8 -- Style Guide for Python Code | Python.org

PEP8 は、「こう書いたら見やすい分かりやすい」という指標でしかありません。

守らなくてもエラーになる訳ではありませんが、特にほかの規約が無い場合は、PEP8 に従ってコードを書きましょう!

まとめ

この記事では、Pythonのコメントアウトについて解説しました。

今回のおさらい

簡単に今回の内容をおさらいしておきます。

# ---行コメント---

# ブロックコメント
val = 1

val = 2  # インラインコメント


# ---複数行コメント---

'''
コメント
です
'''

コメントが書かれているソースコードに手を加える場合は、必ずコメントも書き直すように癖を付けておきましょう。コードとコメントがバラバラになってしまうと、とても厄介なコードになってしまいます。

適切なコメントを書いて、みんなに(自分にも)優しいコードを作成しましょう!

それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ