アンダースコア"_"の役割
Pythonのサンプルコードを読んでいて、
def __init__():
であったり、
def _variable_hogehoge(x):
みたいなアンダースコア二つ又は一つで書かれるのをよく見る。
アンダースコア二つで定義される関数は外部の参照を受けないもの。この場合、アンダースコアで囲う。
アンダースコア一つで定義される関数は参照はできるが、基本的に外部から参照しない ということを慣習化させたものらしい。
ここまでは知っていたが、こんなサンプルコードの一文が
_, loss_value = sess.run([train_op,loss])
なんのアンダースコアなのかなーと思い調べてみたところ
"Python で使わないタプルの値は “_” (アンダーバー) に代入するというプラクティス"
ようは、使わない返り値に変数を割り当てるのはナンセンスだから、アンダースコアで無視しましょうということ。
プログラム的に美しくなる気がする。