Python PR

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

記事内に商品プロモーションを含む場合があります

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

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

それでは、コメント・コメントアウトの書き方・使い方について見ていきましょう。

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

コメントとは、ソースコード上で実行時に無視される文字列のことを言います。変数や関数、クラスなんかもコメントにすることができます。

そしてコメントアウトとは、ソースコードをコメントにすることを言います。バグを特定したい時などにコードをインタプリタに無視させたい場合に使います。

コメントのメリット

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

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

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

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

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

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

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

コメントの書き方

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

行コメント

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

# コメント

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

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

ブロックコメント

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

# 1を出力
print(1)


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


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

インラインコメント

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

print(1)  # 1を出力

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

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

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

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

print(s)

Linkソースコードを途中で改行する方法

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

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  # インラインコメント


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

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

コメントが書かれているソースコードを編集する場合は、必ずコメントも書き直すように癖を付けておきましょう。「めんどくさいから後でいいや」と後回しにするとソースコードの内容とコメントがバラバラになっているかなり厄介なコードになってしまうので注意が必要です。

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

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