Pythonのコメントアウトの方法とは?
Pythonは多くの役立つライブラリが提供されており、効率的にソフトウェア開発を行うことができます。ソフトウェア開発によってソフトウェア資産が増えてくると、コードの維持に注釈付けなどコメントを追加することも増えてくるでしょう。
ここでは、Pythonのコメントアウトの方法を学んでいきます。
【参考】:Python 【参考】:Python Docs: 字句解析
そもそもコメントアウトとは
コメントアウトとは、ソフトウェアが構文上無視できるコメント機能を用いてコードの用法などの注釈を加えるものです。デバッグコードの実行や解除など、テストコードなどを入れ込んでコメントアウトにより無効化しておくなどの使い方が可能です。
Pythonのコメントの用法
Pythonの規約では、”#”で始まる行をコメントと判断します。シェルスクリプトなどと同じ使い方ができます。行頭やプログラムコードの右側に”#”から始まる文字をコメントとして記載します。
具体的には以下のような使い方ができます。
# コメント行です
print('Hello World!') #この部分もコメントです
使い方は簡単ですので、あまり気にせずに使っている方も多いのではないでしょうか。
エンコード宣言によるコメントの特別な使い方
Pythonでは、文字コードのエンコーディングを指定するために1行目か2行目のコメント行に特別な意味を持たせています。
”# -*- coding: <encoding-name> -*-”のような書式で表されます。デフォルトではUTF-8が設定されていますが、エンコード宣言では次のように簡略化して表すことができます。
# coding: utf-8
なお、”# -*- coding: <encoding-name> -*-”の書式はGNU Emqacsで編集する際に認識する書式を表します。上記の他にVimの用法も定義されています。エンコード宣言を使う機会は少ないと思いますが、知識として理解しておきましょう。
【参考】:Python Docs: 字句解析 エンコード宣言
Pythonでまとめてコメントアウトするには
プログラム開発が進んでくると、コメントアウトもまとめて行う必要が出てきます。あるタイミングでコードを整理するなど、一括コメントアウトできると作業効率が上がります。ここでは、一括コメントアウトの仕方を学んでいきます。
Pythonの複数行のコメントアウト機能は?
Pythonでは、単一行のコメント機能を主に使用します。複数行のコメントアウトについては、文字列で表すと実行に影響を与えないことから、シングルクォーテーションを3つ、あるいはダブルクォーテーションを3つ用いるとコード実行に影響を与えないブロックコメント文字列として解釈されます。
次の例は、1〜10の値を足す計算です。最後の合計値を求める際に途中経過をprint()などで表示されることが多いはずです。
# 1から10を足す
total = 0 #この部分もコメントです
for i in range(1,10+1): # 1から10を繰り返す
print(i) # デバッグ用
total+=i
print('Sum(1-10)=', total)
この場合の”print(i)”はデバッグ用なので、最終的なコードのテストが完了したら不要な出力となるはずです。そこで、次のように3重のクォーテーションで前後を囲むことでコメントアウトすることができます。
# 1から10を足す
total = 0 #この部分もコメントです
for i in range(1,10+1): # 1から10を繰り返す
"""
print(i) # デバッグ用
"""
total+=i
print('Sum(1-10)=', total)
用いるクォーテーションは、シングルでもダブルでも構いません。上のサンプルコードは、次のように記述することもできます。
# 1から10を足す
total = 0 #この部分もコメントです
for i in range(1,10+1): # 1から10を繰り返す
’’’
print(i) # デバッグ用
’’’
total+=i
print('Sum(1-10)=', total)
ただし、インデント位置に注意する必要があります。各行のインデント位置でコードが解釈されるため、Pythonで定めるインデント位置がズレるとエラーとなります。1度行頭に開始位置をそろえてまとめてインデントするなども有効です。
「複数行のコメントアウトができない」と慌てずにインデント位置を最初に確認しましょう。
また、一連の処理全体をコメントアウトする場合は、次のように全体を3重のクオーテーションで囲みます。
# 1から10を足す
total = 0 #この部分もコメントです
"""
for i in range(1,10+1): # 1から10を繰り返す
print(i) # デバッグ用
total+=i
print('Sum(1-10)=', total)
"""
ここでは詳しく紹介しませんが、この文字列の扱いを利用して、関数やクラス定義などの説明文をドキュメンテーション文字列(docstring)として表したり、help()関数で表示させたりすることもできます。
【参考】:Python Docs:ドキュメンテーション文字列
コードエディタを使ってまとめてコメントアウトするには
Pythonは、先頭に”#”をつける単一行のコメント、あるいは3つのクォーテーションで囲む複数行のブロックコメントを用いてコメントアウトを行います。
実際のコード開発時にはコードエディタを使用する方が多いと思いますが、ここではコードエディタのショートカットキーでまとめてコメントアウトする方法を学んでいきます。
VSCodeの一括コメントアウトの使い方
VSCode(Visual Studio Code)は、豊富なショートカットキーを搭載しており、開発生産性が高いプログラムエディタです。Pythonのプログラム開発でもショートカットキーが利用できます。
具体的にはWindowsの場合、コード編集時に範囲指定を行い「Ctrl」+「/」をキー入力すると、単一行のコメントアウトを一括して行うことができます。
VSCodeではさらに、範囲指定を行って「Shift」+「Alt」+「A」をキー入力すると、シングルクォーテーション3つのブロックコメントに使用することができます。macOSやLinuxでもショートカットキーに対応しますので、詳しくは以下リンク先のショートカット一覧をご確認ください。
【参考】:Visual Studio Code 【参考】:Visual Studio Code: Keyboard shortcuts for Windows 【参考】:Visual Studio Code: Keyboard shortcuts for macOS 【参考】:Visual Studio Code: Keyboard shortcuts for Linux
他のIDEやコードエディタのショートカットキーは?
他のPython開発ツールでもコメントアウト機能が実装されています。例えばJupyter notebookは、VSCodeと同様に「Ctrl」+「/」で単一行のコメントアウトをショートカットキーで実装しています。残念ながら複数行のブロックコメント機能はショートカットキーに実装されていません。
PythonのIDLEにもコメントアウトのショートカットキーに割り当てられていますが、「Alt」+「3」と「Alt」+「4」でコメント化と非コメント化を切り替えるため、使いやすいとは言えません。詳しくは、使用中のエディタあるいはIDEのショートカットキーの割当を確認しましょう。
Pythonはコードエディタでまとめてコメントアウトが手軽
Pythonは公開ライブラリも多く、簡単にソフトウェア開発を行うことができるため、人気があります。その都度ソフトウェアの改良を行っていくと、変更箇所も見にくくなりデバッグも大変です。
手持ちのソフトウェア資産を、1度見直して注釈を加えるなどをすると良いでしょう。コードエディタでまとめてコメントアウトすると、コーディングルールの統一などにも有効でおすすめです。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから