こちらではPython学習の備忘録と、Ruby、JavaScriptとの比較も含め記載していきたいと思いましたが、Pythonの説明が意外と長くなってしまったので今回はPythonのみとします。
プログラミング初心者や他の言語にも興味、関心をお持ちの方の参考になれば幸いです。
###コメントアウトとは?
「コメントアウトした内容は実行プログラムから無視される」という特徴があります。
つまり、コードに関するメモや意味を、プログラムに影響を与えることなく残せるので便利です。
また、この特徴を活かして、コードを試行錯誤したい時にコメントアウトが役立ってくれます。
###コメントを記述するには?
###Python
- 1行コメント
「#」から行末までは実行時に無視される。
「#」より前のコードは有効。
上記より範囲指定はできない。
# この行はコメントです。
a = "コメント"
print(a) # 変数aを出力
- トリプルクォートによる複数行コメント
関数(defブロック)やクラスなどの先頭の文字列に説明を記述するdocstring(ドキュメンテーション文字列)という仕組みがある。
【参考記事】
Pythonのdocstring(ドキュメンテーション文字列)の書き方
def test(a, b):
'''docstring
description
'''
print(a)
print(b)
シングルクォート「'」、 またはダブルクォート「"」を3つ繋げたトリプルクォート「'''または"""」で囲むことで改行を含めた文字列を生成することができるため、docstringではトリプルクォートが使われるいことが多い。
【参考記事】
Pythonで文字列生成(引用符、strコンストラクタ)
文字列を単独で記述してもコードの処理に影響を与えないのでdocstring以外でもトリプルクォートが複数行のコメントやコメントアウトとして利用されている場合がある。
a = 1
'''
b = 2
c = 3
d = 4
'''
e = 5
トリプルクォートはあくまでも文字列なので、「#」によるコメントのように実行時に無視されるわけではない。
そのため、インデントされているブロックの中でトリプルクォートをコメントとして利用する場合、インデントを合わせないとエラーになる。
# インデントが合っているのでエラーにならない
def test(a, b):
print(a)
'''
comment line1
comment line2
comment line3
'''
print(b)
# インデントが合っていないのでエラー
def test(a, b):
print(a)
'''
comment line1
comment line2
comment line3
'''
print(b)
# IndentationError: unexpected indent
「#」によるコメントは実行時に無視されるのでインデントが合っていなくてもエラーにはならないが、コードとしての可読性を良くするにはインデントを合わせた方が良い。
def test(a, b):
print(a)
# comment line1
# comment line2
# comment line3
print(b)
def test(a, b):
print(a)
# comment line1
# comment line2
# comment line3
print(b)
###おわりに
いずれにせよトリプルクォートについては、コメントではなく文字列なのでdocstring以外では使わない方が無難だと思われます。
Python3.0以降では、関数アノテーションというものがあるらしいが、こちらはまた後日。
【参考記事】
大変勉強になりました、ありがとうございます。
[Pythonのコメント、コメントアウトの書き方]
(https://note.nkmk.me/python-comment/)