スクリプトをモジュールとしてインポートしたときには実行されません。一方で、スクリプトをコマンドラインから実行したりすると実行されます。関数を定義しているサンプルがあったりもします。合わせているようで気持ちが悪いので、どうしたら良いのかざっと調べてみました。関数の是非についてはあまり見つかりません。ブロックの中に変数を書くと、グローバル変数になるので予想外のところで影響が出る可能性がある、ということでした。する必要はありません。うまいこと関数で値を受け渡してしまえば変数ができてしまうこともないですし、このブロックからしか実行できない処理が多いということはモジュールとしては使えない機能が多いということにもなるでしょう。いう名前の関数をつくるのはあまりうまいやり方ではない気がします。