このBlogは移転しました。今後は aish.dev を御覧ください。

Re: 噛めば噛むほどおいしくなるクロージャの話

Python Hack : 噛めば噛むほどおいしくなるクロージャの話

私だったらこうは書かないかなぁ。

  • if のオーバーヘッドなんて気にするもんじゃない。
  • 変数名が '_' ではじまるグローバル変数に「誰かアクセスしちゃうかも」っていうのは、ちょっと神経質。
  • この手のデータは、起動時にロードしておくのが吉。thread-safeにもなるし。
  • コードを見た人に、「lambda 使いたいだけちゃうんか」と思われる危険がある。

どうしてもやりたければ、もっと素直に

class ConfigReader:
    def get(self):
        try:
            return self._config
        except AttrributeError:
            self._config = read_config()
            return self._config

get = ConfigReader().get

とか、もっと解りやすい書き方もあるし。