Pocketアンダースコアなのかアンダーバーなのかそんなことはどっちでも良い。問題はpythonでアンダースコア(アンダーバー)がよく登場することだ。1つのアンダースコアから始まる属性名(_var)2つのアンダースコアから始まる属性名(__var)1つのアンダースコアで終わる属性名(var_)2つのアンダースコアから始まり、2つのアンダースコアで終わる属性名(__var__)アンダースコアだけ(_)属性っていうと、メソッドと変数の両方をさせるらしい。(https://www.python.org/dev/peps/pep-0008/)1つのアンダースコアから始まる属性名は内部での使用を目的としている属性であることを示唆する。以下のように初期化したクラスを外部から読み込んで変数名の付け方による挙動の違いを見てみる。t._bar23上記のように、どちらの場合も外部からアクセスできてしまう。42外部からワイルドカード指定でimportした際には読み込まれない。definedしかし、ワイルドカードで指定しない場合、この変数名は通常通り呼び出すことができる。my_module.int_func()42まとめPEP8ではモジュールの読み込みにワイルドカードを使用することは推奨されていない。モジュールを読み込む時は明示的に指定することが想定される。それだと普通に外部から読み込まれてしまう。1つのアンダースコアから始まる属性名は、プライベート変数だよ!!だけど動作にはほとんど影響しないので、そこんとこ理解しといて!!ってことらしい。(https://www.python.org/dev/peps/pep-0008/)この属性名で定義すると、名前のマングリング機構を呼び出すことで、擬似的にプライベート属性を作成する。具体的には以下のようなマングリングを引き起こす。親クラスと子クラスでメソッド名が重複した場合に、コンフリクトを避ける目的で使うのが一般的らしい。よる特定の演算を実装できます。これにより、クラスは言語の演算子に対する独自の振る舞いを定義できます。