おねーさんですはろーげんきー?
Alexからもらった回答は、
1:まずヒント
2:次に「んーわかんない?こう書いてみて」
という二段構えだった。
初歩のきわみみたいな内容のやりとりには違いないんだけど、よーくかんがえるとそこにはPythonつう言語の持っている哲学について教えてくれているんだということが理解できたのね。
根底にはあたしの抱えていた勘違いがあった。同じようなくだらないことで躓く間抜けがいるかもしれないので書いておくよ。恥ずかしいんだけど。
まず、php(とかの)プログラマは普通に
define(‘VAR_FOO’,’foo is foo’);
とかやるじゃない。こんなの普通。
で、Pythonでこれをやろうとするとどっかに定義かいて、
import config
v = config.VAR_FOO
こう書かないといけない。
あたくしことおねーさん、実は以前から、これをすごく不便に感じていたの。即刻globalにしてくれてもいいじゃん。importとか面倒くさいよって。
違うんだと。
Pythonは自明を好む言語「訳分かんなくなるくらいならめんどうな方がまし」であって、Djangoのドキュメントにもあるけど「暗示的より明示的に」っていうのがどこにいってもポリシーとしてあるんだと。
つまり、どっかで宣言されたであろうVAR_FOOみたいなノリじゃなくて、出所をはっきりさせなければいかんのだよ、お前はソコが分かっていないんじゃないのかというメッセージを、彼の回答の向こうに見た気がしたのです(だから回答は二段構えだったというわけ、たぶんね) 。
分かっているつもりだったのに、明確にスコープというものがあるにもかかわらず、勝手にどっかで宣言されてくれていて勝手に使えると思い込んでいたあたしが招いたミスだったわけです。
勝手にじゃねえよ読み込んだものだけ明確に使えバカ野郎ということだったのです。
わかってみると恥ずかしいやらなんやらで落ち着かない話です。
とはいえ、Pythonに対する根本的な勘違いを木っ端微塵にしてくれた今日の出来事は、とても大きな意味を持っているのです。
きっとこれを後になって読み返すと、厨二病から回復したあとにくる強烈なアレ(過去の自分を客観みたいな)に襲われることは間違いないんだと思うんだけど、それでも己への戒めとしてここに書き残しておく。
まっておれAlex、あんたほどじゃないがあたしもいつか、そのへんのしょっぱいPythonistaのために手を差し伸べてあげられるようになるから。