Pythonでコードを書いていると、デバッグのために一部の処理を一時的に実行しないようにしたり、古いコードを参考のために残しておいたりしたい場面がよくあります。
一行ずつ#
を付けてコメントアウトするのは、行数が多くなると非常に面倒ですよね。
そんなとき、複数行を一度にコメントアウトする方法を知っていると、開発効率が格段に向上します。
この記事では、Pythonで複数行をまとめてコメントアウトするための、実用的で簡単な2つの方法を、それぞれのメリットや注意点とともにわかりやすく解説していきます。
【本記事の信頼性】
- 執筆者は元エンジニア
- 大手プログラミングスクールのWebディレクター兼ライターを経験
- 自らも地元密着型のプログラミングスクールを運営
受講生から評判の良いプログラミングスクール
スクール |
特徴 |
受講料金 |
大手比較サイトで4年連続人気NO.1!受講生からの評判も非常に高く、Web系のエンジニアを目指すならRUNTEQ一択。 | 657,000円 (最大約53万円の給付金が適用される) |
|
月単価80万円以上の現役エンジニア講師による指導!一度入会すればサポートは半永久的。 | 498,000円 |
|
格安で質の高いWeb制作スキルを習得したい人におすすめ!業界最安級の料金でありながら、コミュニティやサポートが充実。 | 129,800円~ |
|
完全無料でプログラミングが学べる貴重なスクール!最短1ヶ月で卒業可能。ゼロスク運営会社への就職もできる。 | 完全無料 |
|
長期間に渡って学習し、希少人材を目指す人に最適なスクール!受講料は高いものの、高収入を得られる人材を目指せる。 | 96~132万円 |
【Pythonでまとめてコメントアウトする方法①】エディタのショートカットキー
最も簡単で、プロの開発現場でも一般的に使われているのが、使っているコードエディタ(VS CodeやPyCharmなど)が持つショートカット機能を利用する方法です。
ショートカットキーの使い方と解除
使い方は非常に直感的です。
- コメントアウトしたい複数行をマウスで選択します。
- 以下のショートカットキーを押します。
- Windows / Linux:
Ctrl
+/
- Mac:
Cmd
+/
- Windows / Linux:
これだけで、選択したすべての行の先頭に#
が付き、まとめてコメントアウトできます。
# ショートカットキーを押す前のコード
print("処理A")
# print("デバッグ用の処理")
# print("これも今は不要")
print("処理B")
例えば、2行目と3行目を選択してショートカットキーを押すと、以下のようになります。
# ショートカットキーを押した後のコード
print("処理A")
# # print("デバッグ用の処理")
# # print("これも今は不要")
print("処理B")
コメントアウトを解除したい(元に戻したい)場合も、同じように対象の行を選択して、同じショートカットキー(Ctrl + /
or Cmd + /
)を押すだけです。
コメント化と非コメント化を簡単にトグル(切り替え)できます。
この方法のメリット
各行が
#
で始まるため、Pythonの構文として完全に正しいコメントになります。同じキー操作でコメント化と解除を素早く切り替えられるため、デバッグ作業が非常にスムーズです。
VS Code、PyCharm、Sublime Text、Atomなど、現代の主要なコードエディタのほとんどがこのショートカットに対応しています。
特別な理由がない限り、複数行のコメントアウトにはこの方法を使うのがベストプラクティスと言えるでしょう。
【Pythonでまとめてコメントアウトする方法②】三重クォート
もう一つの方法として、Pythonの「複数行文字列リテラル」を、ブロックコメントのように使うテクニックがあります。
三重クォートの使い方
コメントアウトしたい範囲の先頭を"""
(ダブルクォート3つ)または'''
(シングルクォート3つ)で囲み、末尾も同じもので閉じます。
print("処理Aは実行されます")
"""
print("この部分は実行されません")
a = 1 + 2
print(a)
"""
print("処理Bは実行されます")
実行結果は以下の通りです。
処理Aは実行されます
処理Bは実行されます
このように、"""
で囲まれたブロック内のコードは実行されなくなります。
注意点は「厳密にはコメントではない」という点
この方法は手軽に見えますが、一つ重要な注意点があります。
それは、三重クォートで囲まれた部分は、技術的には「コメント」ではなく、「どこにも代入されていない単なる文字列」として扱われるという点です。
Pythonでは、この文字列は構文上は文字列リテラルとして扱われます。
処理系によっては最適化で除去されることもありますが、いずれにしても#
を使った本当のコメントとは内部的な扱いが異なります。
特に、関数やクラス、モジュールの先頭にこの形式で記述すると、「ドキュメンテーション文字列(docstring)」という特殊な意味を持つようになります。
def sample_func():
"""
この関数はサンプルです。
引数はありません。
"""
print("関数が実行されました")
# __doc__属性でドキュメンテーション文字列を参照できる
print(sample_func.__doc__)
実行結果は以下の通りです。
この関数はサンプルです。
引数はありません。
このように、本来の用途とは異なる使い方であるため、チーム開発の現場などでは混乱を招く可能性も否定できません。
どちらの方法を使うべき?
結論から言うと、基本的には常に「エディタのショートカットキー」を使うことを強く推奨します。
比較項目 | エディタのショートカット (# ) |
三重クォート (""" ) |
---|---|---|
意味 | 正しいコメント | 文字列リテラル(コメントではない) |
動作 | 確実・安全 | docstringになるなど副作用の可能性あり |
使いやすさ | ショートカットで一瞬 | 手入力で囲む必要がある |
推奨度 | ◎(非常に推奨) | △(限定的な利用に留めるべき) |
三重クォートによるコメントアウトは、Pythonの言語仕様をハックした一時的なテクニックと捉え、コードをバージョン管理システムに残す際などには、#
を使った正式なコメントに修正するのが望ましいでしょう。
まとめ
Pythonで複数行をまとめてコメントアウトする方法について解説しました。
なお、Pythonを体系的に学んだり、Pythonのスキルを高めたりするためには、プログラミングスクールを利用するのも有効です。
細かな疑問がすぐに解決するだけでなく、現役エンジニアが「質の高いポートフォリオ」を作成するための手助けをしてくれたり、エンジニア就職・転職のコツを教えてくれたりするなど、様々なメリットがありますので、独学に疲れた方は検討してみてはいかがでしょうか。