if __name__==’__main__’:

仕事用のPythonスクリプトに手を加えたら、Read Onlyで開いたはずのファイルが書き込まれる事態が発生した。ギョッとして原因を探したら、メインの処理で使ったファイル名を示す変数がグローバル変数として扱われた結果のように思えた。

もしそうなのであれば、C言語のように、メイン処理をmain関数として定義すれば良いように思えたので、ググってみたら、自分の推測通りだった。

自分が読んだ記事を書いた人も同じような経験をしたことがあるそうだが、スクリプトを書き慣れている人は、そうする人が多数派らしい。痛い目に遭って初めて学んだことではあるが、自力でそういうところに辿り着いたので、良しとしておこう。

また、(そういう使い方はしないだろうけど)importされた際の誤動作対策のおまじないも知ることができた。これからはこのスタイルで行こう。

上記の問題を解決したら一気に進んで、当初の目的を達成できたので、気分が良い。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする