本記事では、「Python」のコメントアウトという機能について解説します。行単位や複数行でコメントアウトする方法や、ショートカットの方法などについて解説するので、ぜひ参考にしてください。
「Python」だけではなく、プログラミング言語にはコメントと呼ばれる機能があります。コメントアウトとは、プログラムの特定の箇所を無効化し、注釈を書き込む機能です。コメントアウト機能は、複数人で開発をおこなう上で必須の機能になります。
本記事では、「Python」のコメントアウトという機能について解説します。具体的に解説する事項は以下の通りです。
これからIT業界に進もうと考えている方は、ぜひ押さえておきましょう。
目次
プログラム内のソースコードを特殊な記号で囲んで無効化することを「コメントアウト」と呼びます。コメントアウトされたソースコードは実行時に無視されるため、プログラムの実行結果に影響を与えません。コメントアウトは「過去にどのようなコードを組んでいたのか」という履歴を残せるため、プログラムをデバッグやテストする際に有効です。
さらに、デバッグの過程で一時的に特定のコードブロックを無効化したり、処理の一部を一時的にコメントアウトしたりすることも可能です。また、コードの注釈や説明をプログラム内に書き込むときにもコメントアウトを活用できます。
さらに、コメントは他の開発者とのコミュニケーションや、将来の自分自身へのメモとしても役立ちます。正しい使い方でコメントアウトを活用することで、プログラムの可読性と保守性を向上させられるでしょう。
ここでは「Python」でコメントアウトをする方法を解説します。具体的なコメントアウトの方法は、以下の2通りです。
コメントアウト機能は処理内容の説明だけではなく、テストで無効にしたい処理に対しても使えます。
コメントアウトの際は、インラインコメントとブロックコメントがよく用いられます。まずは基本的なコメントアウトのやり方を、ここで押さえておきましょう。
インラインコメントとは、コード内の特定の行や行末に「#」を記述することでコメントを挿入する方法です。このコメントは、その文字から行末までがコメントとして扱われ、プログラムの実行時には無視されます。
具体例は以下の通りです。
def calculate_sum(a, b): result = a + b # ここで変数aと変数bの和を計算します return result # 計算結果を返します # メインの処理 x = 5 #x = 10 y = 10 total = calculate_sum(x, y) # xとyの和を計算し、totalに代入します print("合計値:", total) # 計算結果を表示します
上記のコードでは、インラインコメントが複数箇所に使用されています。たとえば、
result = a + b
の後には、計算の意図を説明するコメントがあります。コメントを適切に活用することで、コードの読みやすさやメンテナンス性を向上できるのです。
上記のコードの
# x = 10
のコメントアウトを外してみてください。そうすると、コメントアウトしているときと違う値を返します。
ブロックコメントは、複数行のコメントを一括して無効化するために使用されます。「Python」では、シングルクォート3つ(””)またはダブルクォート3つ(”””)で囲むことでブロックコメントを作成します。
以下は具体例です。
''' この部分は ブロックコメントとして 無視されます。 ''' def calculate_sum(a, b): """ この関数は、 引数aとbの和を計算する関数です。 """ result = a + b return result """ x = 5 y = 10 total = calculate_sum(x, y) print("合計値:", total) # ブロックコメント外のコードは実行されます '''
上記のコードでシングルクォート3つ(”’)で囲まれた部分やダブルクォート3つ(”””)で囲まれた部分は、ブロックコメントとして扱われ、プログラムの実行時には無視されます。
試しに一番下のブロックコメントアウトを外してみてください。そうすると、以下のコードが有効となり「5+10」の計算結果の値が、コマンド上に表示されます。
x = 5 y = 10 total = calculate_sum(x, y) print("合計値:", total) # ブロックコメント外のコードは実行されます
ブロックコメントは、関数やクラス、メソッドの使い方や説明を記述する際に役立ちます。複数行のコメントを一括して無効化できるため、手間を省きながらコードの一部のコメントアウトが可能です。
ここでは「Python」でコメントアウトをする際に、気をつけておくべき以下の3つのポイントを紹介します。
インラインコメントは、#以降の部分を無視する仕様のため、インデントには気を使わず、自由な位置に書けます。しかし、他の人も読みやすいコードにするために、インデントに沿ってコメントを記述することをおすすめします。
インデントに関する読みにくいコメントアウトの例が、以下の通りです。
for x in range(10): # 二乗する x = x * x print(x)
上記のコードだと「二乗する」のコメントのインデントが、実際の処理部分とずれているため、読みにくいコードになっています。上記の例においては、コメントアウトのインデントを「x=x*x」以降のインデントに揃えると読みやすいです。
複数行のコメントアウトには、トリプルクォート(三重引用符)を使用する方法があります。ただしこの方法は、インライン(行内)で使用する場合には文法エラーとなるため、注意が必要です。
以下がエラーとなるインラインコメントの例です。
print("Hello, World!") # 以下の行は文法エラーになります print("Hola, Mundo!") """ Holaはスペイン語です ”””
最後の「print(“Hola, Mundo!”)」の行では、コメントとしてトリプルクォートを使用していますが、この行は有効なコードとして解釈されるため、文法エラーが発生します。
インラインでコメントアウトするには、トリプルクォートではなく「#」を使用しましょう。
コメントアウトする範囲内にトリプルクォートが3つあると、「その箇所でコメントアウトが終了した」とPythonに認識されてしまいます。トリプルクォートはシングルクォーテーション(’)またはダブルクォーテーション(”)のどちらでも使用できますので、使いたい引用符を選んでコメントアウトをおこなってください。
また、思うようにコメントアウトできない場合はネスト(今回の場合はコメントの中にコメントを入れ込んで記述すること)して記述することも可能です。
ネストしたコメントアウトのコード例は、以下の通りです。
# ネストしたコメントアウト """ この部分はコメントアウトです。 ''' さらにネストしたコメントも記述できます。 ''' """ print("Hola, Mundo!")
上記のコードでは、内側のトリプルクォートで囲まれた部分もコメントアウトされ、コードとして解釈されません。トリプルクォートを使うことで、柔軟に複数行のコメントアウトができます。
ここでは「Python」のdocstringの書き方について3つの手順で解説します。
docstringは、関数やクラスなどの定義の先頭に記述するコメントです。他のコメントとは異なりヘルプにて表示でき、関数やクラスの説明として参照できます。
docstringは便利な機能なので、効率的に開発を進めるためにも、ぜひ使えるようにしておきましょう。
docstringは、シングルクォートのトリプル(”’)またはダブルクォートのトリプル(”””)で囲んで表現されます。1行の場合でも複数行の場合でも、通常はトリプルクォートを使用しましょう。
たとえば、以下のような関数にdocstringを追加する場合を考えます。
def greet(name): '''指定された名前で挨拶をする関数''' print(f"Hello, {name}!") greet('Alice')
この場合、greet関数のdocstringはシングルクォートのトリプルで囲まれています。docstringは関数の定義の直後に書かれ、関数の説明や目的、引数の意味などを記述します。
「Python」のdocstringは、関数やクラスの先頭に記述することが一般的です。
関数のdocstringは、関数の目的や機能、引数の説明、戻り値の説明などを記述するために使用されます。関数の先頭にdocstringを配置することで、他の開発者がその関数を呼び出す方法や期待される動作を容易に理解できます。
以下は、関数のdocstringの例です。
def calculate_average(numbers): '''与えられた数値の平均値を計算する関数 Note: 与えられた数値の平均値を計算 Args numbers(float): 任意の値 Returns: float: 平均値 ''' total = sum(numbers) average = total / len(numbers) return average
この例では、関数の直後にdocstringが配置されています。
「Python」のdocstringは、チーム内での共通の規則を決めて記述することが重要です。一貫性があり、読みやすいdocstringを作成することが推奨されます。
とくに、以下の3つについては、チーム内で規則として決めておきましょう。
docstringの一般的な形式は、GoogleスタイルやNumPyスタイルなどがありますが、チーム内で独自のスタイルを定義することも可能です。
またdocstringは、要素(関数やクラス)の目的、引数、戻り値、例外処理などの情報も含められます。チーム内でどのような情報を含めるかを定義し、統一された形式で記述することをおすすめします。
加えて、docstring内のテキストのフォーマットやスタイルについても、あらかじめ決めておきましょう。たとえば見出しを使用するか、インデントをどのようにおこなうか、リストを使うかといったルールです。
「Python」にはPEP8というコーディング規約が定められています。このコーディング規約に従うことで、誰もが読みやすく書きやすいコードが実現可能です。
「Python」を扱う方々は、コーディング規約に沿ってコードを記述することで、簡潔で読みやすくメンテナンス性の高いプログラムを作成できるでしょう。
またコメントアウトの際も、コーディング規約に従うことが重要です。一般的には、コメントアウトの行も、インデントに合わせて記述されます。他にも「Python」のコーディング規約PEP8には、さまざまなルールが存在するのです。ここからはコーディング規約の例を、いくつか紹介します。
まず、インデントは半角スペース4つを使用し、タブの使用は避けましょう。これにより、コード内のブロックや階層が視覚的に明確になり、エラーも発生しなくなります。
また、関数などの引数が多くなり改行をする場合、引数リストの開始部分と各要素を整列させましょう。これにより、引数の関係性が一目でわかりやすくなります。
さらに、1行の長さは80文字以内に制限されていますが、実際のところ、79文字以内に制限することが推奨されています。これは、長すぎる行を避け、コードの可読性を高めるためです。
以下に、適切なコード例を示します。
import random # メインクラス class MainClass1: # インスタンス生成時にxにランダム初期値を代入 def __init__(self): self.x = random.randrange(1) # xセット def setX(self, x): self.x = x # xゲット def getX(self): return self.x # メインクラス class MainClass2: # インスタンス生成時にxにランダム初期値を代入 def __init__(self): self.x = random.randrange(1) # xセット def setX(self, x): self.x = x # xゲット def getX(self): return self.x # クラスーインスタンス1 obj1 = MainClass1() # クラスーインスタンス2 obj2 = MainClass2() # 各クラスの値を表示 print('Class1:{0}, Class2:{1}'.format(obj1.getX(), obj2.getX())) # 結果を表示する if obj1.getX() > obj2.getX(): print('Class1 WON!!') elif obj1.getX() < obj2.getX(): print('Class2 WON!!') else: print('DRAW!!')
上記のコードでは、先ほどご紹介したポイントが守られているので、ぜひ参考にしてください。
本記事では「Python」のコメントアウトについての基本を紹介しました。プログラムにコメントを追加して「このコードはどのような処理をおこなっているのか」を説明できるコメントアウトは、共同開発において必ず使う機能です。本記事を参考にして、今のうちに押さえておくことをおすすめします。
エラーが発生したときやテスト時にもコメントを読んで、バグやエラーの解決方法を探ることができます。
自分や他の人がコードを理解しやすくなるよう、積極的にコメントアウトを活用しましょう。
2024.06.17
子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介
#プログラミングスクール
2022.01.06
【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説
#プログラミングスクール
2024.01.26
【未経験でも転職可】30代におすすめプログラミングスクール8選!
#プログラミングスクール
2024.01.26
初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説
#JAVA
2024.01.26
忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説
#プログラミングスクール
2022.01.06
【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介
#プログラミングスクール
2024.01.26
【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説
#プログラミングスクール
2024.01.26
【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説
#プログラミングスクール