Python

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

この記事では、Pythonのコメント・コメントアウトについて解説します。コメントは、どのプログラミング言語にも備わった重要な機能です。Pythonのコメントの書き方を学び、誰が見てもわかりやすいコードが書けるようにコーディング技能を向上させていきましょう!

コメントについて

まずは、書き方を学習する前にコメントについて理解を深めましょう!

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

プログラミングにおける「コメント」とは、ソースコード上で実行時に無視される文字列のことです。またコードの一部をコメントにすることをコメントアウトすると言います。コメントアウトはこのように動詞として使われることが一般的です。

これはどの言語でも大体共通なので覚えておきましょう!

コメントの必要性

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

メリット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

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

【Python】ドキュメンテーション文字列の使い方【docstring】この記事では、Pythonのdocstring(ドキュメンテーション文字列)の使い方を解説します。関数やクラスを使うときに「あれ?この関...

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

統合開発環境やエディタといったツールでは、コメントアウトを簡単に記述するためのショートカットが用意されています。大抵のツールでは、以下のコマンドで選択している行をコメントにすることができます。

Maccommand + /
Windowsctrl + /

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

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

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

PEPとは「Python Enhancement Proposal」の略で、PEP8ではコーディング規約について書かれています。そこには、コメントについてのルールも記載されています。

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

PEP8は「こう書いたら見やすい分かりやすい」という指標でしかありません。守らなくてもエラーになる訳ではありませんが、特にほかの規約が無い場合は、PEP8に従ってコードを書きましょう!

まとめ

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

今回のおさらい

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

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

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

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


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

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

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

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

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

【おすすめ】Python参考書