What’s old in Python x.y, regarding to Imports.

前々から感じてたことなんだけど。

Python にいくつか「鬼門」があるとして、一番は Unicode で決まりとしても、2番3番てなんだろうか、と。

個人的には「ローカル変数のスコープ」が一番いやらしいと思ってるんだけど、それ以外だとやっぱしインポートの振る舞いなのかな、と思う。これに学習初期でハマることはまずなくて、随分経ってから突然牙を剥いて、ようやく事の重大さに気付く、のよね。

今「What’s New」翻訳してて、まともな絶対インポートが導入されたのが 2.5 (部分的に 2.4 から)であったことを知った。それ以前は「クリーンな方法で」名前衝突を避ける術がなかったんだな…。

翻訳が一段落してからにするかどうするか迷うとこだけど、「たかがインポート」ごときのはなしを、歴史も踏まえてまとめてみたくなってきた。インターネットで検索してみてもこの注意点に言及してくれてる記事は少し見つかるんだけれど、ワタシの今の場合、関わった翻訳のリンクも適切に散りばめた、面白いものが書けそうな気がするので。

インポートの関係で、公式ドキュメント内で言及している箇所で重要なのは以下です:

これら見えるものだけ以外の端々は、「頭痛くなってくる」ようなものだったりすんのよね。前に Cython に絡めて似た話をした通りで、わかってるのに雑に作業してると無意識に循環に陥ることがあって、これに陥るとさ、「禿げしく大改造」を強いられる(というか多数のファイルをまたいだ組み替え作業)んで、精神衰弱がぱねぇのな。てなことも、書ければいいかな、なんて思う。