間違い等ありましたら、遠慮なくコメントください!
はじめに
pythonにおいて、名前をつける際にアンダースコアを使う場合がある。様々な使い方があるので解説する。全てに共通することだが、アンダースコアはただの記号ではなくアンダースコアも含めたものが名前として扱われる。名前全般に当てはまるので変数、関数その他に当てはまる。
_single_leading_underscore
先頭にひとつ
だけアンダースコアをつけた場合、import *
とした場合に、インポートから除外される。これによって、モジュールの内部でしか使わず、モジュールを利用する人に使ってほしくないものを隠すことができる。ただし、明示的にimportされるとimportされてしまう。
single_trailing_underscore_
後ろにひとつ
だけつけた場合、特に機能は持たない。しかし、Pythonの予約語と同じ名前を使いたい場合に使用される。
__double_leading_underscore
主にクラス内において使用される。
前に2つ
つけると、クラスの外から呼び出すときは、別名でしか呼び出せなくなる。もちろん別名を使えば呼び出せる。先頭にひとつだけつけるよりはより強力に隠すことができる。
__double_leading_and_trailing_underscore__
前後に2つ
ついているとき、Pythonにとって特別な機能を持つことを表している。自分で勝手に作ってはいけないらしい。